2011-10-28 5 views
5

J'ai joué avec le moteur d'expressions régulières Notepad ++, mais il y a quelque chose que je ne peux pas faire fonctionner, c'est la notation de quantificateur explicite.Notepad ++ notation de quantificateur explicite

J'ai vu quelques autres messages ici où la syntaxe suivante est utilisée: (expr) {1,2}

Cependant, quand je l'utilise dans un test aussi simple que k{1,1} où le texte à rechercher est k: il n'y a pas de correspondance. J'ai essayé beaucoup de syntaxe: {1,}, {1}, etc. Ai-je raté quelque chose ici?

Veuillez excuser mon mauvais anglais, et merci pour vos réponses!

Répondre

18

À partir de la version 6.0, Notepad ++ prend en charge PCRE (source). Les quantificateurs fonctionneront comme prévu dans ces versions.

Le moteur d'expressions régulières de Notepad ++ 5.9.8 et inférieur fait pas quantifieurs de support (source).

Vous pouvez cependant, utiliser les quantificateurs suivants:

  • k*, ce qui équivaut à k{0,}.
  • k+, ce qui est équivalent à k{1,}.
  • k?, ce qui est équivalent à k{0,1}.

Si vous souhaitez d'autres quantificateurs, vous pouvez combiner les méthodes ci-dessus.

Exemples:

  • kkk+ émule k{3,}
  • kkkk?k? émule k{3,5}
+0

Merci pour votre réponse! décevant, car il me fait construire des expressions loooong, mais au moins maintenant je sais à coup sûr :) – igelineau

+0

Notepad ++ est basé sur [Scintilla] (http://www.scintilla.org/SciTERegEx.html), qui utilise des regex POSIX old-school et ces quantificateurs ne fonctionnaient pas là. – NullUserException

+0

@Dennis Peu importe, je me suis confus avec une regex complexe sur laquelle je travaillais. – Techrocket9

1

Le système d'expressions régulières de Notepad ++ ne semble pas prendre en charge cette fonctionnalité. Ils prennent en charge k+ et k*.

Questions connexes