Wie kann ich in einem regulären Java-Ausdruck "nicht vorangestellt" ausdrücken? Zum Beispiel würde ich gerne nach ":" suchen, aber nur, wenn nicht direkt "\" vorangestellt ist. Wie kann ich das machen?Wie kann ich in einem regulären Java-Ausdruck ":" ohne vorangestelltes "" ausdrücken?
7
A
Antwort
14
Verwenden Sie ein negative lookbehind:
"(?<!\\\\):"
Der Grund für die vier Schrägstriche ist:
- der Backslash ein Sonderzeichen in regulären Ausdrücken ist, so dass Sie den regulären Ausdruck benötigen
\\
einen einzelnen Schrägstrich übereinstimmen . - Backslashes müssen in Java-Strings maskiert werden, daher muss jeder der obigen Backslashes als
\\
geschrieben werden, was insgesamt vier ergibt.
Beispielcode:
Pattern pattern = Pattern.compile("(?<!\\\\):");
Matcher matcher = pattern.matcher("foo\\:x bar:y");
if (matcher.find()) {
System.out.println(matcher.start());
}
Ausgang:
10
1
Haben Sie versucht, eine Zeichenklasse mit dem Komplement-Operator?
String s1 = "foo : bar";
String s2 = "foo \\: bar";
Pattern p = Pattern.compile("[^\\\\]:");
Matcher m = p.matcher(s1);
if(m.find()) {
System.out.println(m.group());
}
m = p.matcher(s2);
if(m.find()) {
System.out.println(m.group());
}
Verwandte Themen
- 1. Wie kann ich mit regulären Ausdrücken nach einem Pluszeichen suchen?
- 2. Gruppierung in regulären Ausdrücken
- 3. Wie suche ich nach "\ n" ohne vorangestelltes "\ r" in vim?
- 4. Verwenden von regulären Ausdrücken
- 5. Anker in regulären .NET-Ausdrücken
- 6. Alternativen zu regulären Ausdrücken
- 7. verschachtelter Text in regulären Ausdrücken
- 8. Tilde-Operator in regulären Ausdrücken
- 9. Was bewirkt "*" in regulären Ausdrücken?
- 10. Regeln mit regulären Ausdrücken
- 11. Sicherheit von regulären Ausdrücken
- 12. Wie eine URL mit regulären Ausdrücken schneiden
- 13. Wie bekomme ich Gruppentreffer von regulären Ausdrücken in CMake?
- 14. Kreditkartenformat mit regulären Ausdrücken validieren?
- 15. Wie schließe ich - und 'in diesen regulären Ausdrücken ein?
- 16. Logfile mit regulären Ausdrücken teilen
- 17. Gruppierung in regulären Ausdrücken in Javascript
- 18. Wie kann ich mit regulären Ruby-Ausdrücken nach einem Pfad suchen und ihn ersetzen?
- 19. String Matching mit regulären Ausdrücken
- 20. Neuformatierung Code mit regulären Ausdrücken
- 21. Multiplikation mit .NET regulären Ausdrücken
- 22. Hilfe mit negativem Lookbehind in regulären Ausdrücken
- 23. Kombinieren von zwei regulären Ausdrücken mit replaceAll()
- 24. OLEDB, Excel-Zelle ohne vorangestelltes Apostroph schreiben
- 25. Einschließlich Kommentare in regulären Java-Ausdrücken
- 26. Wie werden Umlaute mit regulären Ausdrücken verglichen?
- 27. Wie listet Dateinamen mit regulären Ausdrücken
- 28. Wie man Adresse mit regulären Ausdrücken extrahiert
- 29. Wie td Tags mit regulären Ausdrücken auswählen?
- 30. Spieldaten mit Python regulären Ausdrücken
Dies entspricht nicht ':' am Anfang der Zeichenfolge. – polygenelubricants