Salve,
Mi sto battendo duramente con le espressioni regolari per creare un parser per vCard, sono riuscito a far funzionare tutto ma c'è un piccolissimo errore che mi scombina tutto.
Ho questo testo:
codice:
N:cognome;nome;secondo nome;prefisso;suffisso
e devo estrarre tutti i vari oggetti (N,nome,cognome,ecc.) e per farlo usa questa regex:
codice:
(\n(?<strElement>(N))) (: (?<strSurname>([^;]*))) (;(?<strGivenName>([^;]*))) (;(?<strMidName>([^;]*))) (;(?<strPrefix>([^;]*))) (;(?<strSuffix>[^\n\r]*))
tutto funziona però spesso se non viene inserito un secondo nome o un altro oggetto l'editor non sempre inserisce il ';' e quindi potrei trovarmi di fronte a situazioni così:
e a questo punto viene estratto oltre che alla stringa 'nome' anche il terminatore di riga e tutta la linea sottostante finchè non trova un ';'.
Io vorrei dire al motore regex di prendere ogni oggetto fino a un ';' oppure fino al terminatore riga.
Come posso fare?
Grazie mille