Comment créer une expression régulière pour faire correspondre un mot au début d'une chaîne. Nous cherchons à faire correspondre stop
au début d'une chaîne et tout peut suivre.
Par exemple, l'expression doit correspondre à:
stop
stop random
stopping
Merci.
Si vous souhaitez faire correspondre uniquement les lignes commençant par stop use
^stop
Si vous souhaitez faire correspondre les lignes commençant par le mot stop suivi d'un espace
^stop\s
Ou, si vous souhaitez faire correspondre les lignes commençant par la fin de Word mais suivies d'un espace ou de tout autre caractère que vous ne pouvez pas utiliser (votre style le permettant, si vous le souhaitez)
^stop\W
D'autre part, ce qui suit correspond à un mot au début d'une chaîne de la plupart des goûts de regex (dans ces goûts, w correspond à l'opposé de\W).
^\w
Si votre version ne comporte pas le raccourci\w, vous pouvez utiliser
^[a-zA-Z0-9]+
Méfiez-vous que ce second idiome ne fera que correspondre à des lettres et des chiffres, aucun symbole.
Consultez le manuel de votre style regex pour savoir quels raccourcis sont autorisés et en quoi ils correspondent (et comment traitent-ils l’Unicode)?
Essaye ça:
/^stop.*$/
Explication:
Si vous souhaitez que cet arrêt soit suivi d'un espace, vous pouvez modifier le RegEx comme suit:
/^stop\s+.*$/
Remarque: Gardez également à l'esprit que le RegEx ci-dessus nécessite que le mot d'arrêt soit suivi d'un espace! Donc, cela ne correspond pas à une ligne qui ne contient que: stop
Si vous souhaitez faire correspondre quoi que ce soit après un mot, arrêtez non seulement au début de la ligne, vous pouvez utiliser: \bstop.*\b
- Word suivi de ligne
Ou si vous souhaitez faire correspondre le mot de la chaîne, utilisez \bstop[a-zA-Z]*
- uniquement les mots commençant par stop
Ou le début des lignes avec stop ^stop[a-zA-Z]*
pour le mot uniquement - premier mot uniquement
Toute la ligne ^stop.*
- première ligne de la chaîne uniquement
Et si vous voulez faire correspondre chaque chaîne commençant par stop, y compris les nouvelles lignes, utilisez: /^stop.*/s
- chaîne multiligne commençant par stop
Comme @SharadHolani a dit. Cela ne correspondra pas à tous les mots commençant par " stop "
. Seulement si c'est au début d'une ligne du type " arrêtez d'aller " . @ Waxo a donné la bonne réponse:
Celui-ci estlégèrementpréférable, si vous souhaitez faire correspondre tout mot commençant par " stop " et ne contenant que des lettres deA à Z.
\bstop[a-zA-Z]*\b
Cela correspond à tous
arrêter (1)
stop random (2)
arrêt (3)
vouloir arrêter (4)
s'il vous plaît arrêtez (5)
Mais
/^stop[a-zA-Z]*/
correspondrait seulement (1) jusqu'à (3), mais pas (4) et (5)
/stop([a-zA-Z])+/
Correspondra à n'importe quel mot d'arrêt (stop, stop, stoping, etc.)
Cependant, si vous voulez juste faire correspondre "stop" au début d'une chaîne
/^stop/
va faire: D
Si vous voulez faire correspondre tout ce qui commence par "stop", y compris "stop going", "stop" et "stopping", utilisez:
^stop
Si vous voulez faire correspondre le Word stop suivi de quoi que ce soit comme dans "Arrêtez", "Arrêtez ça", mais pas "Arrêté" et pas "Arrêté" utilisez:
^stop\W
Je déconseillerais une approche simple de l'expression régulière à ce problème. Il y a trop de mots qui sont des sous-chaînes d'autres mots sans rapport, et vous allez probablement vous rendre fou en essayant de suradapter les solutions plus simples déjà fournies.
Vous aurez besoin d'au moins un algorithme de création de racine naïve (essayez le modèle Porter, il existe un code gratuit dans la plupart des langues) pour traiter le texte en premier. Conservez ce texte traité et le texte prétraité dans deux tableaux séparés. Assurez-vous que chaque caractère non alphabétique obtient également son propre index dans ce tableau. Quelle que soit la liste de mots que vous filtrez, supprimez-les également.
La prochaine étape consisterait à trouver les indices de tableau qui correspondent à votre liste de mots "arrêtés". Supprimez ceux-ci du tableau non traité, puis rejoignez les espaces.
Ce n'est que légèrement plus compliqué, mais ce sera une approche beaucoup plus fiable. Si vous avez des doutes sur la valeur d'une approche plus orientée vers la PNL, vous pouvez effectuer des recherches sur les erreurs critiques .
Si vous voulez que le mot commence par "stop", vous pouvez utiliser le modèle suivant. "^ stop. *"
Cela correspondra aux mots commençant par stop suivi de rien.