Recherche…


Syntaxe

  • Style POSIX, fin du mot: [[:>:]]
  • Style POSIX, début du mot: [[:<:]]
  • Style POSIX, limite de mot: [[:<:][:>:]]
  • SVR4 / GNU, fin du mot: \>
  • SVR4 / GNU, début du mot: \<
  • Perl / GNU, limite de mot: \b
  • Tcl, fin de mot: \M
  • Tcl, début du mot: \m
  • Tcl, limite de mot: \y
  • Portable ERE, début du mot: (^|[^[:alnum:]_])
  • Portable ERE, fin du mot: ([^[:alnum:]_]|$)

Remarques

Ressources additionnelles

Match mot complet

\bfoo\b

correspondra au mot complet sans alphanumérique et _ précédant ou suivant par lui.

Prenant de regularexpression.info

Il y a trois positions différentes qui qualifient de limites de mots:

  1. Avant le premier caractère de la chaîne, si le premier caractère est un caractère de mot.
  2. Après le dernier caractère de la chaîne, si le dernier caractère est un caractère de mot.
  3. Entre deux caractères dans la chaîne, l’un est un caractère de mot et l’autre n’est pas un caractère de mot.

Le terme caractère de mot signifie ici l'un des suivants

  1. Alphabet ( [a-zA-Z] )
  2. Nombre ( [0-9] )
  3. Souligner _

En bref, mot caractère = \w = [a-zA-Z0-9_]

Rechercher des motifs au début ou à la fin d'un mot

Examinez les chaînes suivantes:

foobarfoo
bar
foobar
barfoo
  • la bar expression régulière correspondra aux quatre chaînes,
  • \bbar\b ne fera que correspondre à la 2ème,
  • bar\b sera capable de faire correspondre les 2ème et 3ème chaînes, et
  • \bbar correspondra aux 2ème et 4ème chaînes.

Limites de mots

Le métacaractère \b

Pour faciliter la recherche de mots entiers, nous pouvons utiliser le métacaractère \b . Il marque le début et la fin d'une séquence alphanumérique *. En outre, comme il ne sert qu'à marquer ces emplacements, il ne correspond en réalité à aucun caractère.

*: Il est courant d'appeler une séquence alphanumérique par un mot, puisque nous pouvons capturer ses caractères avec un \w (la classe des caractères du mot). Cela peut être trompeur, car \w inclut également des nombres et, dans la plupart des cas, le trait de soulignement.

Exemples:

Regex Contribution Allumettes?
\bstack\b stackoverflow Non , car il n'y a pas d'occurrence de la stack mots entière
\bstack\b foo stack bar Oui , car il n'y a rien avant ou après la stack
\bstack\b stack!overflow Oui, il n'y a rien avant la stack et ! n'est pas un caractère de mot
\bstack stackoverflow Oui , car il n'y a rien avant la stack
overflow\b stackoverflow Oui , car il n'y a rien après le overflow

Le métacaractère \B

Ceci est l'opposé de \b , correspondant à l'emplacement de chaque caractère non-frontière. Comme \b , puisqu'il correspond aux emplacements, il ne correspond à aucun caractère. C'est utile pour trouver des mots non entiers.

Exemples:

Regex Contribution Allumettes?
\Bb\B abc Oui , puisque b n'est pas entouré de limites de mots.
\Ba\B abc Non , a a une limite de mot sur son côté gauche.
a\B abc Oui , a n'a pas de limite de mot sur son côté droit.
\B,\B a,,,b Oui , il correspond à la deuxième virgule car \B correspondra également à l'espace entre deux caractères non-mots (il convient de noter qu'il existe une limite de mots à gauche de la première virgule et à droite du second).

Rendez le texte plus court mais ne brisez pas le dernier mot

Pour créer un texte long avec le maximum de N caractères mais laisser le dernier mot intact, utilisez le pattern .{0,N}\b :

^(.{0,N})\b.*


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow