Il est une erreur commune à égarez affirmations. Si vous souhaitez utiliser préanalyse, le motif est quelque chose comme ceci:
^(?!.*paragraph$).*$
Cela correspond (as seen on rubular.com):
something something para
paragraph something something
Mais ne correspond pas:
something paragraph
Donc, la clé différence ici est que nous commençons à regarder en avant au début de la chaîne, avant que nous correspondons .*
(ou .{0,1000}
dans votre cas). Bien sûr, ce que nous cherchons n'est pas simplement paragraph$
, mais plutôt .*paragraph$
. Cela dit, pour vérifier qu'une chaîne ne se termine pas par quelque chose de longueur finie, lookbehind, lorsqu'elle est supportée, est la solution la plus naturelle.
^.*$(?<!paragraph)
Ok Merci, par curiosité serait-il possible de changer pour utiliser lookahead négatif? – user254694
@ Bryan-Rasmussen J'ai d'abord essayé de trouver quelque chose avec lookahead négatif, sans succès. – Artefacto