Regex - Entspricht der ganzen Zeichenfolge außer

8

Ich muss einen regulären Ausdruck schreiben, der alles in der Zeichenkette abgleicht, außer es enthält ein bestimmtes Wort. Nehmen Sie diese Zeichenfolge zum Beispiel:

%Vor%

Der Ausdruck, der zu allem passt, ist:

%Vor%

... Was geändert werden muss, damit es nicht mit der Zeichenfolge übereinstimmt, wenn es das Wort "sqlbuddy" enthält. Ich dachte, dass eine negative Vorausschau es tun würde, aber das funktioniert nicht für mich.

Zum Beispiel habe ich das versucht, was nicht funktioniert:

%Vor%

Wie soll ich das ändern?

    
Allen 02.08.2011, 21:29
quelle

3 Antworten

5

Das Beispiel funktioniert nicht, weil es annimmt, dass sqlbuddy am Anfang der Zeichenfolge steht. Sie müssen Folgendes ändern, damit sqlbuddy an einer beliebigen Stelle in der Zeichenfolge angezeigt werden kann:

%Vor%

Wenn Sie jedoch wirklich nur überprüfen möchten, ob Ihre Zeichenfolge ein gegebenes Wort enthält, dann ist möglicherweise ein "http://12.34.567.890/sqlbuddy".contains("sqlbuddy") ausreichend.

    
João Silva 02.08.2011, 21:37
quelle
2

Auch das funktionierte für mich: Die Position der Zeichenfolge 'sqlbuddy' spielt keine Rolle.

^((?!sqlbuddy).)*$

    
Nick Radford 02.08.2011 21:35
quelle
0

... auch (für andere Personen), wenn Sie nur an einer bestimmten Stelle einer [langen] Zeichenfolge (langer Text mit mehreren Übereinstimmungen) suchen möchten, können Sie Folgendes verwenden:

%Vor%

oder, permissiver:

%Vor%     
XXN 01.05.2015 20:05
quelle

Tags und Links