Chi mi sa dire cosa vuol dire l'espressione regolare {\\?(.*)\\?\\}
grazie![]()
Chi mi sa dire cosa vuol dire l'espressione regolare {\\?(.*)\\?\\}
grazie![]()
Ci vorrebbe un \\ prima della { se vuoi matchare proprio una graffa { (le { } sono caratteri speciali nelle regex).Originariamente inviato da saracenovale
Chi mi sa dire cosa vuol dire l'espressione regolare {\\?(.*)\\?\\}
Comunque, supponendo che sia "\\{\\?(.*)\\?\\}":
Una graffa { cui segue un ? cui seguono zero o più caratteri (presi in "gruppo") cui segue un ? cui segue un }
In pratica può matchare qualcosa del tipo: {?blablabla?}
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
E il doppio slash \\ che vuol dire?
Ho un programma che data l'espressione regolare ER= {\\?(.*)\\?\\} e data una stringa, pesca dalla stringa quella parte che matcha l'ER
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? è sbagliato il programma del parser?
grazie![]()
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).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Mitico!! funzionagrazie mille!!