228 votes

Expression régulière pour faire correspondre une chaîne de caractères commençant par un mot spécifique

Comment créer une expression régulière pour faire correspondre un mot au début d'une chaîne ?

Nous cherchons à jumeler arrêter au début d'une chaîne de caractères et tout peut la suivre.

Par exemple, l'expression doit correspondre :

stop
stop random
stopping

351voto

Vinko Vrsalovic Points 116138

Si vous souhaitez ne faire correspondre que les lignes commençant par arrêter utiliser

^stop

Si vous souhaitez faire correspondre les lignes commençant par le mot arrêter suivi d'un espace :

^stop\s

Ou, si vous souhaitez faire correspondre les lignes commençant par le mot arrêter mais suivi d'un espace ou de tout autre caractère non verbal que vous pouvez utiliser (si votre regex le permet).

^stop\W

D'un autre côté, ce qui suit correspond à un mot au début d'une chaîne sur la plupart des saveurs de regex (dans ces saveurs \w correspond à l'opposé de \W )

^\w

Si votre saveur n'a pas le \w vous pouvez utiliser le raccourci

^[a-zA-Z0-9]+

Attention, cette deuxième idiome ne correspondra qu'aux lettres et aux chiffres, sans aucun symbole.

Consultez le manuel de la saveur de votre regex pour savoir quels raccourcis sont autorisés et ce qu'ils correspondent exactement (et comment ils traitent l'Unicode).

139voto

Miky Dinescu Points 22380

Essayez ça :

/^stop.*$/

Explication :

  • / Les caractères délimitent l'expression régulière (c'est-à-dire qu'ils ne font pas partie de la Regex en tant que telle).
  • ^ signifie que la correspondance se fait au début de la ligne
  • . suivi par * signifie correspondre à n'importe quel caractère (.), un nombre quelconque de fois (*)
  • $ signifie jusqu'à la fin de la ligne

Si vous souhaitez imposer que le stop soit suivi d'un espace, vous pouvez modifier la RegEx de la manière suivante :

/^stop\s+.*$/
  • \s signifie tout caractère d'espacement
  • + à la suite de la \s signifie qu'il doit y avoir au moins un caractère d'espacement après le mot d'arrêt.

Note : Gardez également à l'esprit que la RegEx ci-dessus exige que le mot d'arrêt soit suivi d'un espace ! Elle ne correspondrait donc pas à une ligne qui ne contient que : arrêter

68voto

Waxo Points 1527

Si vous voulez faire correspondre tout ce qui suit un mot, arrêter et pas seulement en début de ligne, vous pouvez utiliser : \bstop.*\b - mot suivi d'une ligne .

Word till the end of string

Ou si vous voulez faire correspondre le mot dans la chaîne, utilisez \bstop[a-zA-Z]* - seulement les mots commençant par arrêter .

Only the words starting with stop

Ou le début des lignes avec arrêter - ^stop[a-zA-Z]* pour le mot seulement - premier mot seulement . 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 .

29voto

Sedat Kilinc Points 549

Comme l'a dit @SharadHolani. Cela ne correspondra pas à tous les mots commençant par " arrêter "

. Seulement si c'est au début d'une ligne comme " arrêter de fumer ". @Waxo a donné la bonne réponse :

Celui-ci est légèrement mieux encore, si vous voulez faire correspondre tout mot commençant par " arrêter " et ne contenant que des lettres de De A à Z .

\bstop[a-zA-Z]*\b

Cela correspondrait à tous les

arrêter (1)

arrêter aléatoire (2)

en arrêtant (3)

veulent arrêter (4)

s'il vous plaît arrêter (5)

Mais

/^stop[a-zA-Z]*/

ne correspondrait qu'aux points (1) à (3), mais pas aux points (4) et (5).

10voto

Alex B Points 12826

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 mot stop suivi de n'importe quoi comme dans "stop going", "stop this", mais pas "stopped" et pas "stopping" utilisation :

^stop\W

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X