Je dois écrire une expression régulière qui correspondra à tout dans la chaîne à moins que cela ne présente qu'un certain mot. Prenant cette chaîne par exemple: l'expression qui correspond à tout est: p> ... qui doit être modifié de manière à ce qu'il sera Par exemple, j'ai essayé cela, ce qui ne fonctionne pas: P> ^(?!sqlbuddy).*$
3 Réponses :
En outre, cela a fonctionné pour moi: la position de la chaîne 'SQLBuddy' n'a pas d'importance. p>
^ ((?! sqlbuddy).) * $ code> p>
L'exemple ne fonctionne pas car il suppose Cependant, si vous voulez vraiment simplement vérifier si votre chaîne contient Un mot donné, alors peut-être un sqlbuddy code> est au début de la chaîne. Vous devez la modifier à ce qui suit, de sorte que sqlbuddy code> peut apparaître n'importe où dans la chaîne: "http://12.34.567.890/sqlbuddy" .Contains ("sqlbuddy") code> suffira. p> p>
Merci. Je l'utilise avec mod_rewrite, donc je ne peux pas utiliser .Contains (), mais cela fonctionne et aussi l'autre réponse ci-dessous. Toutefois, pour une raison quelconque, il ne correspond pas à l'utilisation du testeur de regex à GSKINNER.COM/REGEXR
@Allen, Découvrez Rubular, c'est ce que j'utilise pour mes tests de regex, et je l'aime vraiment.
+1 mais mineur Tweak: vous n'avez pas besoin du . * Code> après sqlbuddy code>. Ceci suffit: (? M) ^ (?!. *? SQLBuddy). * $ Code> ou (? m) ^ (? * $ Code> Selon que vous voulez devenir paresseux ou en arrière.
... aussi (pour d'autres personnes), si vous souhaitez effectuer une recherche uniquement dans un lieu spécifique d'une chaîne [longue] (texte long avec plusieurs correspondances), vous pouvez utiliser:
first_part_of_string.*(?!.*sqlbuddy.*).*second_part_of_string