PDA

Visualizza la versione completa : [REGEX] Individuare inizio di una parola


Sasuccio87
17-01-2011, 17:35
Ciao a tutti. Ho un problema nel scrivere un'espressione regolare. Devo trovare tutte le parole che iniziano per a. Ho visto che l'inizio viene indicato con:


\<


quindi avrei scritto questa espressione: \<[a]
Succede ovviamente che a causa del carattere speciale '\', il compilatore mi da errore, quindi ho messo il doppio \.



\\<[a]


Però così pure se le parole iniziano con a, mi restituisce false...

LeleFT
17-01-2011, 17:43
No, l'inizio di una riga viene rappresentato dal carattere '^', mentre la fine viene rappresentata dal dollaro ($).

Quindi, per scrivere una RegEx che rappresenta tutte le stringhe che iniziano con A:



^A.*


Ma questo vale per le righe... se intendi costruire una espressione regolare che trova tutte le parole che iniziano con la lettra A, allora è più semplice:



A[^ ]*


Ciao. :ciauz:

Sasuccio87
17-01-2011, 17:46
Ah O_O cavoli in una guida di un'università avevo letto che l'inizio veniva indicato con <\. Senti, per la fine il dollaro deve essere messo tra le parentesi tonde?

LeleFT
17-01-2011, 17:50
No... l'ho messo io tra parentesi tonde per indicare qual è il carattere dollaro (capita che parlando con alcuni uteni si dica "carattere dollaro" e capiscano il carattere £... ).

Ma attenzione: quelli sono indicatori di inizio riga e fine riga, non inizio parola e fine parola.


Ciao. :ciauz:

Sasuccio87
17-01-2011, 17:54
Ok inizio parola? A.*...io in teoria dovrei trovare tutti i doppi apici preceduti da una parentesi quadra...

[\"]+[[]*

Hmm non mi sembra giusta :D

LeleFT
17-01-2011, 18:06
No, ho corretto il mio precedente post perchè avevo scritto una stupidaggine.
Per cercare tutte le parole che iniziano con una data lettera (esempio, la A di prima), l'espressione regolare è:



A[^ ]*


Ovvero A seguita da qualunque altro carattere che non sia uno spazio.
Nota che il cappelletto, in questo contesto (ovvero, subito dopo una parentesi quadra) serve a negare il carattere che lo segue.

Ciao. :ciauz:

Sasuccio87
17-01-2011, 18:07
Ma qualunque carattere non si indica con il . ?

LeleFT
17-01-2011, 18:13
Originariamente inviato da Sasuccio87
Ma qualunque carattere non si indica con il . ?
Sì, ma il . indica qualunque carattere, mentre per indicare una parola io devo dire di considerare qualunque carattere, tranne lo spazio... il punto prende lo spazio come un qualunque altro carattere, quindi effettuerebbe il match con tutta la stringa rimanente dopo la prima A.

Ciao. :ciauz:

Loading