Wie kann ich nach der ersten Übereinstimmung des regulären Ausdrucks zurückkehren? (macht die Matcher.find() Methode das?)Java Regex Rückkehr nach dem ersten Spiel
sagen wir habe eine Zeichenfolge "abcdefgeee". Ich möchte die Regex-Engine bitten, sofort nach dem Finden der ersten Übereinstimmung von "e" zum Beispiel zu finden. Ich schreibe eine Methode, um wahr/falsch zurückzugeben, wenn das Muster gefunden wird und ich nicht die ganze Zeichenfolge für "e" finden möchte. (Ich suche nach einer Regex-Lösung)
Eine andere Frage, manchmal, wenn ich matches() verwende, wird es nicht korrekt zurückgegeben. Zum Beispiel, wenn ich mein Muster wie "[a-z]" kompiliere. und dann verwendet matchs(), es stimmt nicht überein. Aber wenn ich das Muster als ".*[a-z].*"
kompiliere, stimmt es überein .... ist das das Verhalten der Matches() -Methode der Matcher-Klasse?
Bearbeiten, hier ist eigentlich, was ich tun möchte. Zum Beispiel möchte ich nach einem $ -Zeichen und einem @ -Zeichen in einer Zeichenfolge suchen. Also würde ich 2 kompilierte Muster definieren (da ich kein logisches UND für Regex finden kann, da ich die Grundlagen kenne).
pattern1 = Pattern.compiled("$");
pattern2 = Pattern.compiled("@");
dann würde ich
if (match1.find() && match2.find() ){
return true;
}
in meiner Methode verwenden nur.
Ich möchte nur die Matcher die Zeichenfolge für das erste Auftreten und Rückkehr suchen.
dank
Ihre erste Frage ist verwirrend Sie sagen, Sie wollen um wahr/falsch zurück zu geben, aber dann sagst du, du willst aufhören zu suchen, nachdem du eine Übereinstimmung gefunden hast? Ein Regex wird nur passen oder nicht. – jzd
Entschuldigung, ich habe ein bisschen auf die Frage aktualisiert. – ghostdog74