Newsgroup: it.comp.programmare
Titolo: /[^\+0-9]/  o   /[^+0-9]/

Espressioni regolari Perl.
Si usa
/[^\+0-9]/
oppure
/[^+0-9]/
?
In pratica il "+" ha bisogno di escape?
Se non fosse all'esterno di un gruppo "[]", sicuramente. Ma essendo 
all'interno?

Gnaurgl ha scritto:

Intanto che cosa intendi esprimere?
Tutto tranne il + e le cifre da zero a nove, mi viene da intendere...
In tal caso la seconda che hai scritto e' interpretabile, ma credo 
proprio che anche la prima vada bene, giacche' il + con l'escape davanti 
continua ad essere +.

 /[^+0-9]/
Il + ha senso in questa formula? Se lo usi in senso aritmetico non ha
senso perchè si riferisce a zero, mentre se lo usi nella sua funzione
regexp non ha senso perché deve riferirsi ad uno o più elementi
precedenti.

 zero,
In che senso?

 precedenti.
Ok ho scelto un esempio reale ma meno netto. Diciamo che invece che "+" 
devo usare "." che ha un preciso significato come espressione regolare e 
io non voglio usarlo come significato speciale ma semplicemente come punto.
Se fosse all'esterno del gruppo fra parentesi quadre sono sicuro che 
dovrei usare l'escape.
Ma dentro le parentesi quadre?
/[^\.0-9]/
oppure
/[^.0-9]/
?
Credo (non ho provato, ma ho provato altri simboli speciali) che venga 
interpretato correttamente in entrambi i casi ma c'� una regola delle 
espressioni regolari che dica:
"dentro i gruppi non si fa l'escape dei caratteri speciali perch� 
vengono comunque interpretati come semplici caratteri normali"
?
Ho visto esempi in internet che usano caratteri speciali nei gruppi 
senza usare l'escape quando invece vogliono usarli con il loro 
significato di semplici caratteri.
Da qui il mio dubbio: ci va l'escape sempre ma qualcuno a volte se lo 
dimentica e funziona lo stesso, oppure c'� una regola che stabilisce che 
nei gruppi di caratteri i caratteri vengono interpretati sempre con il 
loro significato non speciale e quindi l'escape non serve?
Grazie.

 In che senso?
Giusto, troppi "senso", colpa di una nottata insonne.

 /[^.0-9]/
Il punto può essere interpretato come separatore di decimali o altro,
difficile interpretarlo nel tuo esempio. L'uso delle parentesi quadre
identifica i limiti di una scala, per esempio da zero a nove, il punto
in che scala si colloca? A mio avviso è necessario definire con
chiarezza quale risultato ti prefiggi al fine di comporre
l'espressione regolare adatta.

prefiggi al fine di comporre l'espressione regolare adatta.
E' stato, mi sembra, chiarissmo.
Ciao.

 Ciao.
Facevi prima ad inviare una risposta al quesito Gnaurgi invece di
sottilizzare il mio post che riguardava esclusivamente
l'interpretazione umana del problema, che a mio parere è necessaria
precondizione. A questo punto non posso fare a meno di chiederti a
cosa sia servito il tuo ultimo post, forse solo a mettere in mostra
qualche banale conoscenza?

 qualche banale conoscenza?
No, a correggere delle inesattezze che hai detto. Che in un gruppo tecnico
di discussione � importante tanto quanto dare risposte dirette.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 di discussione è importante tanto quanto dare risposte dirette.
Non sono d'accordo, personalmente riesco a produrre tutti i risultati
che desidero con una regexp, ma non riesco a capire quale sia
esattamente l'obiettivo del quesito originale. La comprensione del
quesito serve sia a me, al fine di acquisire una casistica, sia a chi
pone il quesito nel caso riesca a dare una risposta corretta. La
polemica serve solo a perdere del tempo.

 polemica serve solo a perdere del tempo.
La polemica la stai facendo tu perch� sei risentito che qualcuno ti abbia
corretto. Giovanni ha risposto ad un tuo messaggio correggendo le
inesattezze che hai detto (hai parlato di "scale") e cercando di chiarire
la questione all'OP. Quando hai chiesto a Giovanni che senso avesse la sua
risposta, io te l'ho spiegato. Ed ora stai rispondendo a me per dire cosa?
Il quesito originale � pi� che chiaro: l'OP non sa se il punto venga
interpretato letteralmente o ha bisogno di essere specificato come
sequenza di escape. Giovanni, nel messaggio di seguito al tuo, dava una
risposta alla questione. Se tu sei uno che "riesce a produrre tutti i
risultati che desidera" con una regexp, avresti potuto dare una risposta
corretta.


 corretta.
Il  fatto è che non riuscivo a comprendere la domanda. Non so se nella
mia controrisposta vi sia un elemento emotivo, forse hai ragione tu,
in questo caso chiedo venia. Incidente chiuso?

ultimo post, forse solo a mettere in mostra qualche banale conoscenza?
A riempire piacevolmente la pausa pranzo.
Ciao.

 Il  fatto � che non riuscivo a comprendere la domanda. Non so se nella
Bando alle ciancie.
Non hai capito niente di quell'espressione regolare, n� la prima col "+" 
n� la seconda con il punto.
I dubbi che hai posto sono dubbi presenti solo nella tua testa per 
mancanza di conoscenza delle espressioni regolari.
La domanda era perfettamente chiara fin dall'inizio e alla fine ha 
ricevuto risposta, non grazie a te e nonostante la tua involontaria 
azione di disturbo.
Niente di personale.
Io ho imparato una cosa nuova sulle espressioni regolari.

 una domanda a cui era già stata data una risposta soddisfacente?
Senza voler offendere, ma se un pó pesante...
Non ho risposto alla domanda ma ho semplicemente chiesto chiarimenti,
oltretutto non li ho chiesti a te.

 Io ho imparato una cosa nuova sulle espressioni regolari.
Buon per te.