Das folgende Codeteil gibt false zurück, wenn es der Wahrheit entspricht. Kann mir jemand sagen warum? Es verwendet java.util.regex.Pattern, um die Regex zu analysieren.
Pattern.compile("^\|:\|$".matcher("| |").matches();
Das folgende Codeteil gibt false zurück, wenn es der Wahrheit entspricht. Kann mir jemand sagen warum? Es verwendet java.util.regex.Pattern, um die Regex zu analysieren.
Pattern.compile("^\|:\|$".matcher("| |").matches();
EIN \
in einem Stringliteral muß \\
entwertet werden.
Wenn Sie irgendetwas dazwischen einfügen möchten, verwenden Sie .*
, nicht :
.
Wenn Sie die matches
Methode in Java verwenden, müssen Sie nicht die Zeichenfolge Grenzen ^
und $
da diese Funktion true
gibt nur hinzufügen, wenn er die ganze Zeichenfolge übereinstimmt.
Sie scheinen
Pattern.compile("\\|.*\\|").matcher("| |").matches();
Ich denke du meinst "" \\ |. * \\ " – revo
@revo ja, danke (nahm mich eine Weile, um den Unterschied zu sehen ... diese Zeichenfolge entkommen ist so schmerzhaft ...) –
Beachten Sie, dass ich didn Lösche diese Antwort (vorerst) nicht, da ich immer noch unsicher bin, ob es nützlich ist oder nicht (die Frage ist eindeutig kein exaktes Duplikat IMO) –
„Entwurfsmuster“ zu wollen, ist absolut nicht „regex Muster“ –
Der Punkt ist, dass 'matches()' eine vollständige Zeichenfolge Spiel erfordert. –
Warum das: und der Raum? Ich verstehe die Logik dieses Versuchs nicht. Willst du '"^\\ |. * \\ | $ "'? –