Oppure

Loading
28/04/13 20:48
GN
Ciao a tutti grazie in anticipo e scusate per il titolo non chiarissimo ma non sapevo spiegarmi in breve ;)
Ho questo problema: ho del testo formattato in questo modo:
bla bla bla
<!ATTLIST abc
def ghi
jkl mno
>
bla bla bla
<!ATTLIST pqr
stu vwx
xya bcd
>
bla bla bla

E devo ottenere gli insiemi di lettere abc, def, ghi, ecc. Ho provato a usare questo pattern:
<!ATTLIST (.+)>

con attivata l'opzione singleline, che fa in modo che il punto possa rappresentare qualsiasi carattere incluso l'a capo.
Quel che ottengo è un solo match così:
<!ATTLIST abc
def ghi
jkl mno
>
bla bla bla
<!ATTLIST pqr
stu vwx
xya bcd
>

perchè il parser arriva fino all'ultimo ">" che trova. Io vorrei invece che si fermasse al primo in modo da ottenere un match per ogni parte di tipo <!ATTLIST blablabla>.
Se può centrare qualcosa lo sto implementando in VB.NET (posto in "Altri linguaggi" perchè le espressioni regolari di solito si possono considerare come un linguaggio a parte).
Sapreste aiutarmi? Grazie ;)
aaa
29/04/13 11:21
ZioCrocifisso
Puoi usare i quantificatori non-greedy, nel tuo caso +? al posto di +, per indicare che non deve matchare tutto ciò che può.
aaa
29/04/13 13:28
TheKaneB
prova con
<!ATTLIST ([^>]+)>

In questo modo gli dici di matchare tutti i caratteri tranne il >, quindi appena trova il primo carattere uguale a > termina il match.
aaa
29/04/13 18:06
GN
Ho provato entrambi i modi e funzionano tutti e due. Grazie ;)
aaa