Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - [Espressioni regolari]Modificare la precedenza dei caratteri
Forum - Altri Linguaggi - [Espressioni regolari]Modificare la precedenza dei caratteri

Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:48
Domenica, 28/04/2013
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:
Codice sorgente - presumibilmente Altri Linguaggi

  1. bla bla bla
  2. <!ATTLIST abc
  3. def ghi
  4. jkl mno
  5. >
  6. bla bla bla
  7. <!ATTLIST pqr
  8. stu vwx
  9. xya bcd
  10. >
  11. bla bla bla


E devo ottenere gli insiemi di lettere abc, def, ghi, ecc. Ho provato a usare questo pattern:
Codice sorgente - presumibilmente Plain Text

  1. <!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ì:
Codice sorgente - presumibilmente Altri Linguaggi

  1. <!ATTLIST abc
  2. def ghi
  3. jkl mno
  4. >
  5. bla bla bla
  6. <!ATTLIST pqr
  7. stu vwx
  8. xya bcd
  9. >


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 ;)

PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 13:21
Lunedì, 29/04/2013
Puoi usare i quantificatori non-greedy, nel tuo caso +? al posto di +, per indicare che non deve matchare tutto ciò che può.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:28
Lunedì, 29/04/2013
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.

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:06
Lunedì, 29/04/2013
Ho provato entrambi i modi e funzionano tutti e due. Grazie ;)

PM Quote