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

9voto

Mez Points 9744
/stop([a-zA-Z])+/

Correspond à n'importe quel mot d'arrêt (stop, stopped, stopping, etc.).

Cependant, si vous voulez simplement faire correspondre "stop" au début d'une chaîne de caractères

/^stop/

Je le ferai :D

5voto

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 et suivis de n'importe quoi.

3voto

/^stop*$/i

i - au cas où il serait sensible à la casse.

1voto

Robert Elwell Points 4431

Je vous déconseille d'utiliser une simple expression régulière pour résoudre ce problème. Il y a trop de mots qui sont des sous-chaînes d'autres mots sans rapport, et vous deviendrez probablement fou en essayant de suradapter les solutions plus simples déjà fournies.

Il vous faudra au moins un algorithme de troncature naïf (essayez le Porter stemmer ; 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 et séparés dans l'espace. Veillez à ce que chaque caractère non alphabétique ait également son propre index dans ce tableau. Quelle que soit la liste de mots que vous filtrez, équeutez-les également.

L'étape suivante consiste à trouver les indices du tableau qui correspondent à votre liste de mots "stop". Retirez-les du tableau non traité, puis rejoignez-les sur les espaces.

Cette méthode est à peine plus compliquée, mais elle sera beaucoup plus fiable. Si vous avez des doutes sur la valeur d'une approche plus axée sur la PNL, vous pouvez faire des recherches sur les sujets suivants erreurs clbuttiques .

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