Javascript reg ex pour correspondre à un mot entier uniquement lié seulement par des espaces
donc je sais \bBlah\b correspondent à un ensemble de Bla, mais il correspond aussi à Bla dans "Blah.jpg" je ne veux pas que ça. Je veux correspondre uniquement les mots entiers avec un espace de chaque côté.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer:
\sBlah\s
.Ou si vous vous permettez de début et de fin des ancres,
(^|\s)Blah(\s|$)
Ce sera match
"Blah"
par lui-même, ou chaqueBlah
dans"Blah and Blah"
Voir aussi
\s
signifie "blanc".^
correspond à la position avant le premier caractère de la chaîne$
matches à droite après le dernier caractère de la chaîneD'anticipation variante
Si vous voulez correspondre à la fois à
Blah
dans"Blah Blah"
, alors, étant donné que l'espace est "partagé" entre les deux occurrences, vous devez utiliser les assertions. Quelque chose comme:Voir aussi
Capturer uniquement
Blah
Ci-dessus regex serait également correspondre à la pointe des espaces.
Si vous ne souhaitez que
Blah
, idéalement, lookbehind aurait été sympa:Mais depuis que Javascript n'est pas en charge, vous pouvez, au lieu d'écrire:
Maintenant
Blah
seraient capturés dans\1
, avec aucun espace.Voir aussi
Correspondant à tous:
Debuggex Démo
\b
comprend à la fois^
et$
. Anticipation est redondant ici aussi, comme\b
correspond pas un personnage, mais une frontière. Oui, une simple\bBlah\b
fait la même chose.Essayer
\sBlah\s
— qui va correspondre à une forme quelconque d'espaces sur les côtés.(^|\s)Blah(\s|$)
devrait fonctionner, cependant il permettra également de sélectionner les espaces, si vous voulez juste le mot que vous pouvez faire ceci:(^|\s)(Blah)(\s|$)
et de prendre le groupe 2 (2$en ruby).Si vous voulez aider avec un RegEx, la caisse: http://www.gskinner.com/RegExr/
Blah
ici: rubular.com/r/xSCyF42ymyen extrayant tous les mots dans une chaîne