In una stringa "literal" \\ vuol dire il carattere \.Originariamente inviato da saracenovale
E il doppio slash \\ che vuol dire?
String a = "aaa\\bbb";
questa stringa contiene aaa\bbb. Il \\ è così doppio, solo perché è scritto nel sorgente!
Ripeto che { è speciale e c'è da mettere \\{Originariamente inviato da saracenovale
Ho un programma che data l'espressione regolare ER= {\\?(.*)\\?\\}
Questo è dovuto al fatto che .* è "greedy" (ingordo) e cerca di catturare il più possibile, non il meno possibile.Originariamente inviato da saracenovale
Input dato al parser:
<password>{?A?}</password>
Output ottenuto dal parser:
A
Input dato al parser:
<password>{?A?}</password><password>{?B?}</password>
Output ottenuto dal parser:
A?}</password><password>{?B
come è possibile?
Se vuoi catturare il meno possibile, allora:
String pattern = "\\{\\?(.*?)\\?\\}";
Nota il ? dopo * che lo rende "reluctant" (riluttante e quindi cattura il meno possibile).

Rispondi quotando