Newsgroup: it.comp.lang.vo-clipper
Titolo: Regular Expressions

Salve,
tano per cambiare: qualcuno ha mai avuto bisogno di regular expressions 
all'interno di un applicativo VO?
Se serve, posso mettere a disposizione una classe VO (che usa la 
libreria hs_regex.dll).
Saluti
Wolfgang

 libreria hs_regex.dll).
esprimiti .... :)) cosa sarebbe sta roba ?
PS : Comunque se proprio vuoi "dare" avrei una decina di richieste .....
Alessandro 

Interessante!
Per chi non lo sapesse � la possibilit� di cercare all'interno di testi 
delle parole o frasi non esatte.
Mi spiego meglio: riesci a trovare ad esempio tutte le parole (o frasi) 
che iniziano con "P" e finiscono con "o" scrivendo P.*o
In VO � possibile dalla versione 2.8 effettuare ricerche di questo tipo 
  spuntando l'apposita casella.
Molto utile, se puoi, l'apprezzo molto!
Ciao
Alessandro
Wolfgang Riedmann ha scritto:


 ha scritto nel 
messaggio news:4a9fec03$0$839$4faf...@reader5.news.tin.it...


Per maggiore chiarezza riporto quanto scritto su wikipedia
vedi 
http://it.wikipedia.org/wiki/Regular_expression
  Sintassi
Espressioni regolari tradizionali di UNIX [modifica]
La sintassi di base delle espressioni regolari in UNIX � attualmente 
definita obsoleta dallo standard POSIX, ma � comunque molto usata a 
causa della sua diffusione. La maggior parte dei programmi che 
utilizzano le regexp, come grep e sed, utilizzano tali regole di base 
fornendo al contempo supporto per le nuove regole estese.
In questa sintassi, la maggior parte dei caratteri sono visti come 
letterali, e trovano solo se stessi ("a" trova "a", "bc)" trova "bc)" 
ecc.). Le eccezioni a questa regola sono i metacaratteri:
. 	Trova ogni singolo carattere (se � nella modalit� linea singola 
altrimenti se � in multiriga prende tutti i caratteri diversi da \n, 
ovvero un ritorno a capo).
[ ] 	Trova un singolo carattere contenuto nelle parentesi. Ad esempio, 
[abc] trova o una "a", "b", o "c". [a-z] � un intervallo e trova ogni 
lettera minuscola dell'alfabeto. Possono esserci casi misti: [abcq-z] 
trova a, b, c, q, r, s, t, u, v, w, x, y, z, esattamente come [a-cq-z].
Il carattere '-' � letterale solo se � primo o ultimo carattere nelle 
parentesi: [abc-] o [-abc]. Per trovare un carattere '[' o ']', il modo 
pi� semplice � metterli primi all'interno delle parentesi: [][ab] trova 
']', '[', 'a' o 'b'.
[^ ] 	Trova ogni singolo carattere non incluso nelle parentesi. Ad 
esempio, [^abc] trova ogni carattere diverso da "a", "b", o "c". [^a-z] 
trova ogni singolo carattere che non sia una lettera minuscola. Come 
sopra, questi due metodi possono essere usati insieme.
^ 	Corrisponde all'inizio della stringa (o di ogni riga della stringa, 
quando usato in modalit� multilinea)
$ 	Corrisponde alla fine della stringa o alla posizione immediatamente 
precedente un carattere di nuova linea (o alla fine di ogni riga della 
stringa, quando usato in modalit� multilinea)
( ) 	Definisce una "sottoespressione marcata". Ci� che � incluso 
nell'espressione, pu� essere richiamato in seguito. Vedi sotto, \n.
\n 	Dove n � una cifra da 1 a 9; trova ci� che la nesima 
sottoespressione ha trovato. Tale costrutto � teoricamente irregolare e 
non � stato adottato nella sintassi estesa delle regexp.
* 	
     * Un'espressione costituita da un singolo carattere seguito da "*", 
trova zero o pi� copie di tale espressione. Ad esempio, "[xyz]*" trova 
"", "x", "y", "zx", "zyx", e cos� via.
     * \n*, dove n � una cifra da 1 a 9, trova zero o pi� iterazioni di 
ci� che la nesima sottoespressione ha trovato. Ad esempio, "(a.)c\1*" 
trova "abcab" e "accac" ma non "abcac".
     * Un'espressione racchiusa tra "\(" e "\)" seguita da "*" non � 
valida. In alcuni casi (es. /usr/bin/xpg4/grep di SunOS 5.8), trova zero 
o pi� ripetizioni della stringa che l'espressione racchiusa ha trovato. 
In altri casi (es. /usr/bin/grep di SunOS 5.8), trova ci� che 
l'espressione racchiusa ha trovato, seguita da un letterale "*".
{x,y} 	Trova l'ultimo "blocco" almeno x volte e non pi� di y volte. Ad 
esempio, "a{3,5}" trova "aaa", "aaaa" o "aaaaa".
Vecchie versioni di grep non supportano il separatore alternativo "|".
Esempi:
     ".atto" trova ogni stringa di cinque caratteri come gatto, matto o 
patto
     "[gm]atto" trova gatto e matto
     "[^p]atto" trova tutte le combinazioni dell'espressione ".atto" 
tranne patto
     "^[gm]atto" trova gatto e matto ma solo all'inizio di una riga
     "[gm]atto$" trova gatto e matto ma solo alla fine di una riga
Dal momento che molte serie di caratteri variano a seconda della 
configurazione locale (in alcuni casi le lettere sono organizzate in 
abc..xyzABC...XYZ, in altri aAbB..yYzZ), lo standard POSIX ha definito 
alcune classi o categorie di caratteri come mostrato nella seguente tabella:
classe POSIX 	sintassi normale 	significato
[:upper:] 	[A-Z] 	lettere maiuscole
[:lower:] 	[a-z] 	lettere minuscole
[:alpha:] 	[A-Za-z] 	lettera sia maiuscole che minuscole
[:alnum:] 	[A-Za-z0-9] 	numeri e lettere maiuscole e minuscole
[:digit:] 	[0-9] 	numeri
[:xdigit:] 	[0-9A-Fa-f] 	numeri in formato esadecimale
[:punct:] 	[.,!?:...] 	segni di interpunzione
[:blank:] 	[ \t] 	spazio o TAB
[:space:] 	[ \t\n\r\f\v] 	caratteri vuoti
[:cntrl:] 		caratteri control
[:graph:] 	[^ \t\n\r\f\v] 	caratteri non vuoti
[:print:] 	[^\t\n\r\f\v] 	caratteri non vuoti e spazi
Le parentesi quadrate fanno parte della sintassi per indicare la classe 
di caratteri. Ad esempio [[:upper:][:digit:]ab] trova corrispondenza in 
una qualsiasi lettera maiuscola, in una qualsiasi cifra, nella lettera 
'a' minuscola e nella lettera 'b' minuscola.
Ciao
Alessandro
Wolfgang Riedmann ha scritto:


 ha scritto nel 
messaggio news:h7or9j$g38$1...@aioe.org...


 ha scritto nel messaggio 
news:VA.0000027...@gmx.net...


non si pu� promettere e non fare.
La libreria si trova qui:
http://www.riedmann.it/download/regex_cavo.zip
Si tratta di due AEF, una la DLL che contiene l'interfaccia, l'altra un 
programma demo.
Inoltre ho aggiunto la hs_regex.dll stessa, completa anche 
dell'archivio di distribuzione con la relativa documentazione.
Forse per qualcuno potrebbe essere interessante anche il modo come 
viene caricato la DLL: al primo uso con LoadLibrary() invece di un 
linking statico. Uso moltissimo questo modo per abbreviare i tempi di 
carico dell'eseguibile.
Saluti
Wolfgang

Ciao Massimo,
certo, se apri i singoli file... Dal RTF dovresti comunque togliere le 
formattazioni.
Saluti
Wolfgang

Grazie mille!
Ciao
Alessandro
Wolfgang Riedmann ha scritto:



oppure controllare l'input dell'utente in modo che non possa inserire cose 
del tipo /par...
mi interessa, grazie e a bun rendere...
Massimo

 PS : Comunque se proprio vuoi "dare" avrei una decina di richieste .....
spara! Forse ho qualche soluzione finita o quasi...
Wolfgang
P.S. la cosa delle regex mi serviva ieri per un progetto, ho visto che 
altri se ne erano preoccupati, ma il codice non era pi� disponibile. 
Allora ho scritto l'interfaccia e ho pensato di proporrla...

 ha scritto nel messaggio 
news:VA.0000027...@gmx.net...


 Eventualmente possiamo trovarci e fare un "mini" meeting .
come sai io ci sto, sia per aiutare nell'organizzazione che con contenuti, se 
interessa.
Unico problema: non riesco a sponsorizzare con Euro oltre qualche centinaio.
E ovviamente, preferisco una localit� nel nord Italia... ma questa � una 
preferenza...
Forse potremmo cercare di concentrarci sui contenuti:
- il gruppo potrebbe dire che tematiche interessano
- oppure chi crede di poter contribuire qualcosa lo dice, e il gruppo decide 
cosa vuole sentire/vedere.
Saluti
Wolfgang