Verwenden von Regex zum Abgleichen aller Zeichen außer =
Lesezeit: 2 Minuten
Ich versuche, eine String-Validierung zu schreiben, die mit jedem Zeichen (normal, ziffern- und speziell) außer = übereinstimmt.
Hier ist, was ich geschrieben habe –
String patternString = "[[^=][\\w\\s\\W]]*";
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher(str);
if(m.matches())
System.out.println("matches");
else
System.out.println("does not");
Aber es stimmt mit dem Muster mit der Eingabezeichenfolge “2009-09/09 12:23:12.5=” überein.
Wie kann ich = (oder ein anderes Zeichen) aus der Musterzeichenfolge ausschließen?
Was versuchst du abzugleichen? (oder nicht)? nur [^=]* passt auf alles außer dem ‘=’-Zeichen.
– Guillaume Polet
19. März 2012 um 13:17 Uhr
Sie können Zeichenklassen nicht verschachteln. [[] ist einfach eine Zeichenklasse, die aus dem einzelnen Zeichen besteht [.
– tripleee
Mar 19, 2012 at 13:25
tripleee
If the only prohibited character is the equals sign, something like [^=]* sollte arbeiten.
[^...] ist eine negierte Zeichenklasse; es stimmt mit einem einzelnen Zeichen überein, das ein beliebiges Zeichen außer einem aus der Liste zwischen den eckigen Klammern ist. * wiederholt den Ausdruck null oder mehrmals.
Wie kann ich machen [^=]* passen \nauch?
– Cameron Hudson
11. Juni 2021 um 17:36 Uhr
Ich bin zwar kein Java-Mensch, aber mein erster Suchmaschinentreffer war stackoverflow.com/a/30315738/874188
– Dreier
11. Juni 2021 um 17:49 Uhr
Hmm, danke, aber mein spezieller Anwendungsfall ist das Suchen und Ersetzen in VSCode.
– Cameron Hudson
13. Juni 2021 um 5:19 Uhr
Zunächst einmal brauchen Sie keinen regulären Ausdruck. Einfach anrufen contains:
Der richtige reguläre Ausdruck, den Sie suchen, ist einfach
String patternString = "[^=]*";
Dies kann für das Originalplakat sehr hilfreich sein. Aber diese Antwort ist sehr weit von dem spezifischen Text der Frage entfernt, der Tausende von anderen zu dieser Seite führt. Diese Alternative hat viel weniger Wert für sie.
– ctpenrose
11. März 2019 um 16:55 Uhr
Wenn Ihr Ziel darin besteht, keine =-Zeichen in Ihrer Zeichenfolge zu haben, versuchen Sie bitte Folgendes
String patternString = "[^=]*";
stimmungsvoll
Wenn Sie nur auf das Vorkommen von “=” prüfen möchten, warum verwenden Sie nicht die Methode String indexOf()?
if str.indexOf('=') //...
14362700cookie-checkVerwenden von Regex zum Abgleichen aller Zeichen außer =yes
Was versuchst du abzugleichen? (oder nicht)? nur [^=]* passt auf alles außer dem ‘=’-Zeichen.
– Guillaume Polet
19. März 2012 um 13:17 Uhr
Sie können Zeichenklassen nicht verschachteln.
[[]
ist einfach eine Zeichenklasse, die aus dem einzelnen Zeichen besteht[
.Mar 19, 2012 at 13:25