Ich bin sehr neu in Regex und versuche das herauszufinden:
/games/athem
/games/athem/countdown
Ich will die ganze linie bis zum letzten bekommen /
Damit /games/athem
sollte gültig sein aber nicht /games/athem/countdown
(.*)$
Das gibt mir alles, aber ich möchte bei dem stoppen /
. Wie stelle ich sicher, dass es nur funktioniert? /games/
und nicht zum Beispiel /companies/athem
?
Wie würde ich das machen? Ich habe versucht zu suchen, konnte aber nichts finden. Es ist einfach sehr verwirrend
Antworten:
2 für die Antwort № 1Sie dürfen verwenden
^/games/[^/]+$
Siehe die Regex-Demo.
Lassen Sie in Java die Anker aus, wenn Sie das Muster mit verwenden matches()
Methode:
s.matches("/games/[^/]+")
Beachten Sie, dass Sie nicht ausweichen müssen /
in einem String-Muster da /
ist kein spezielles Regex-Metazeichen und Java-Regex verwendet keine Regex-Trennzeichen.
Musterdetails
^
- Stringbeginn (implizit inmatches()
)/games/
- ein Literal/games/
Teilzeichenfolge[^/]+
- 1 oder mehr Zeichen außer/
$
- Ende der Zeichenfolge (implizit inmatches()
).