Re: [Python] controllo della data

2012-07-29 Per discussione infs...@libero.it
Un ringraziamento a voi che avete risposto e in modo simpatico vi siete 
confrontati, mi è piaciuta la battuta sul codice +- pythonico. 
Circa Marco Beri, ho per le mani proprio un tuo libro Python pocket della 
Apogeo. 
Alla fine mi pare di aver capito che il codice che andrebbe usato è

from datetime import datetime
input = '10/12/1977'
try:
 result = datetime.strptime(input, '%d/%m/%Y')
except ValueError:
 result = None

Bene, l'ho provato e funziona; ora lo devo raccordare col codice che avevo già 
disposto e quindi la prima riga va messa in cima al listato, poi creo una def 
con le righe di cui sopra alla quale passo la data ricevuta da tastiera e 
valuterò la risposta in result: se None la data è sbagliata e va reinserita con 
un While e non con un goto di Commodoresca memoria (chi ha qualche anno sulle 
spalle capirà!)
Un grazie a tutti voi, al prossio dubbio.
Ciao




Messaggio originale
Da: python-requ...@lists.python.it
Data: 28/07/2012 22.40
A: python@lists.python.it
Ogg: Digest di Python, Volume 77, Numero 37

Invia le richieste di iscrizione alla lista Python all'indirizzo
   python@lists.python.it

Per iscriverti o cancellarti attraverso il web, visita
   http://lists.python.it/mailman/listinfo/python
oppure, via email, manda un messaggio con oggetto `help' all'indirizzo
   python-requ...@lists.python.it

Puoi contattare la persona che gestisce la lista all'indirizzo
   python-ow...@lists.python.it

Se rispondi a questo messaggio, per favore edita la linea dell'oggetto
in modo che sia più utile di un semplice Re: Contenuti del digest
della lista Python...


Argomenti del Giorno:

   1. Re: controllo della data (Giorgio Zoppi)
   2. Re: controllo della data (Nicola Larosa)
   3. Re: controllo della data (Andrea Francia)
   4. Re: controllo della data (Daniele Varrazzo)
   5. Re: controllo della data (Alberto Granzotto)
   6. Re: controllo della data (Giorgio Zoppi)
   7. Re: controllo della data (Daniele Varrazzo)


--

Message: 1
Date: Sat, 28 Jul 2012 20:49:26 +0200
From: Giorgio Zoppi giorgio.zo...@gmail.com
To: Discussioni generali sul linguaggio Python
   python@lists.python.it
Subject: Re: [Python] controllo della data
Message-ID:
   CAHW5Hkqwz9P4BPXVmYO79721Lkm1E3URsxkBN6vN9=bp4_f...@mail.gmail.com
Content-Type: text/plain; charset=ISO-8859-1

Marco compariamo

RegExp:
import re

date = 01/02/1988
checkdate =^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
obj = re.compile(checkdate)
if (re.match(date)):
 print 'Valid date'


Datetime
from datetime import datetime
date = '10/12/1977'
input = date.replace(/,)
result = None
format = ['%d%m%Y']
  try:
result = datetime.strptime(input, format)
  except:
 pass

if (result):
print Validate


Il secondo e' piu pythonico...ma lungo. Hai altre opzioni?


--

Message: 2
Date: Sat, 28 Jul 2012 20:58:18 +0200
From: Nicola Larosa n...@teknico.net
To: Discussioni generali sul linguaggio Python
   python@lists.python.it
Subject: Re: [Python] controllo della data
Message-ID: 5014364a.5000...@teknico.net
Content-Type: text/plain; charset=UTF-8

Giorgio Zoppi wrote:
   except:
  pass

Tu andrai all'inferno per questo, lo sai sì?


 Il secondo e' piu pythonico...

Se 'sta roba è pythonica, io sono Mastro Geppetto.

-- 
Nicola Larosa - http://www.tekNico.net/

Most women experimentally are bisexual. If you give testosterone shots
to heterosexual men they become more obsessed with women. If you give
it to gay men they become more obsessed with men, to lesbians they
become more obsessed with women. If you give the same shot to a
heterosexual woman she becomes more obsessed with everybody.
 - Christopher Ryan, March 2012



--

Message: 3
Date: Sat, 28 Jul 2012 21:11:42 +0200
From: Andrea Francia and...@andreafrancia.it
To: Discussioni generali sul linguaggio Python
   python@lists.python.it
Subject: Re: [Python] controllo della data
Message-ID:
   caoaxvrk_hzte8aj9odc9vmpcpqa2rzkdrahyy7v09gkhxkx...@mail.gmail.com
Content-Type: text/plain; charset=utf-8

On Sat, Jul 28, 2012 at 8:49 PM, Giorgio Zoppi giorgio.zoppi@gmail.
comwrote:

 Datetime
 from datetime import datetime
 date = '10/12/1977'
 input = date.replace(/,)
 result = None
 format = ['%d%m%Y']
   try:
 result = datetime.strptime(input, format)
   except:
  pass

 if (result):
 print Validate


A parte l'uso scorretto delle eccezioni questa non é una validazione
corretta.
Accetterebbe anche 101/2/1977 come data valida e lo convertirebbe (credo) a
10/12/1977.

Ciao
-- 
Andrea Francia http://andreafrancia.it
-- parte successiva --
Un allegato HTML è stato rimosso...
URL: http://lists.python.
it/pipermail/python/attachments/20120728/560cd00f/attachment-0001.html

--

Message: 4
Date: Sat, 28 Jul 2012 20:28:06 +0100
From: Daniele

Re: [Python] controllo della data

2012-07-28 Per discussione Giorgio Zoppi
se non sbaglio la data avra un formato.
Supponi che il formato sia
02/04/1980

basta una esperessione regolare e hai risolto, guardati il modulo di
espressioni regolari e l'ottimo Regular Expression Howto.

Il 28 luglio 2012 08:53, infs...@libero.it infs...@libero.it ha scritto:
 Salve, da una settimana sto smanettando con Python e ho una marea di domande.
 Comincio con la prima, le altre strada facendo.
 Esiste in Python un modo per controllare una data immessa da input (es.
 data=raw_input ('immetti data') )? Per ora me la sto cavando con il
 sezionamento della data in parti e controllare ciascuna parte con delle if. Ma
 anche qui ho un problema, come si fa in caso di errore a ritornare alla riga 
 di
 input (qualcosa tipo resume o go to).
 Tante grazie
 NSantini
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python



-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
Favola -Moda.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Marco Mariani
2012/7/28 Giorgio Zoppi giorgio.zo...@gmail.com

se non sbaglio la data avra un formato.
 Supponi che il formato sia
 02/04/1980

 basta una esperessione regolare e hai risolto, guardati il modulo di
 espressioni regolari e l'ottimo Regular Expression Howto.


 import datetime
 datetime.datetime.strptime('02/04/1980', '%d/%m/%Y')
datetime.datetime(1980, 4, 2, 0, 0)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Marco Beri
2012/7/28 Giorgio Zoppi giorgio.zo...@gmail.com

 se non sbaglio la data avra un formato.
 Supponi che il formato sia
 02/04/1980
 basta una esperessione regolare e hai risolto, guardati il modulo di
 espressioni regolari e l'ottimo Regular Expression Howto.


Eh, non è esattamente la soluzione migliore. Sembri me stesso quando, agli
arbori, programmando in C (stiamo parlando del 1985!), siccome avevo letto
solo il KC, mi riscrissi tutte le funzioni strcpy, strcat, ecc. :-)

La documentazione che NSantini deve leggere è quella del modulo datetime.

Per quanto riguarda la domanda sul goto glissiamo... Io ci metterei un
loop tipo: while not data_ok:

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Nicola Larosa
Giorgio Zoppi wrote:
   except:
  pass

Tu andrai all'inferno per questo, lo sai sì?


 Il secondo e' piu pythonico...

Se 'sta roba è pythonica, io sono Mastro Geppetto.

-- 
Nicola Larosa - http://www.tekNico.net/

Most women experimentally are bisexual. If you give testosterone shots
to heterosexual men they become more obsessed with women. If you give
it to gay men they become more obsessed with men, to lesbians they
become more obsessed with women. If you give the same shot to a
heterosexual woman she becomes more obsessed with everybody.
 - Christopher Ryan, March 2012

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Andrea Francia
On Sat, Jul 28, 2012 at 8:49 PM, Giorgio Zoppi giorgio.zo...@gmail.comwrote:

 Datetime
 from datetime import datetime
 date = '10/12/1977'
 input = date.replace(/,)
 result = None
 format = ['%d%m%Y']
   try:
 result = datetime.strptime(input, format)
   except:
  pass

 if (result):
 print Validate


A parte l'uso scorretto delle eccezioni questa non é una validazione
corretta.
Accetterebbe anche 101/2/1977 come data valida e lo convertirebbe (credo) a
10/12/1977.

Ciao
-- 
Andrea Francia http://andreafrancia.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Daniele Varrazzo

On 2012-07-28 19:49, Giorgio Zoppi wrote:

Marco compariamo

RegExp:
import re

date = 01/02/1988
checkdate =^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- 
/.](19|20)\d\d

obj = re.compile(checkdate)
if (re.match(date)):
 print 'Valid date'


Ti dice anche se un anno è bisestile?


Datetime
from datetime import datetime
date = '10/12/1977'
input = date.replace(/,)
result = None
format = ['%d%m%Y']
  try:
result = datetime.strptime(input, format)
  except:
 pass

if (result):
print Validate


Il secondo e' piu pythonico...ma lungo. Hai altre opzioni?


Basta toglierci tutta la roba che non serve. Che poi che vuol dire, più 
un pezzo di codice è corto e meglio è? L'estetica del perl?


from datetime import datetime
input = '10/12/1977'
try:
result = datetime.strptime(input, '%d/%m/%Y')
except ValueError:
result = None

(sebbene l'aggettivo Pythonico non sia esattamente ben definito, il 
tuo esempio *veramente* non lo era..)



--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Alberto Granzotto
2012/7/28 Daniele Varrazzo p...@develer.com

 On 2012-07-28 19:49, Giorgio Zoppi wrote:

 Marco compariamo

 RegExp:
 import re

 date = 01/02/1988
 checkdate =^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[-
 /.](19|20)\d\d
 obj = re.compile(checkdate)
 if (re.match(date)):
  print 'Valid date'


 Ti dice anche se un anno è bisestile?


  Datetime
 from datetime import datetime
 date = '10/12/1977'
 input = date.replace(/,)
 result = None
 format = ['%d%m%Y']
   try:
 result = datetime.strptime(input, format)
   except:
  pass

 if (result):
 print Validate


 Il secondo e' piu pythonico...ma lungo. Hai altre opzioni?


 Basta toglierci tutta la roba che non serve. Che poi che vuol dire, più un
 pezzo di codice è corto e meglio è? L'estetica del perl?

 from datetime import datetime
 input = '10/12/1977'
 try:
 result = datetime.strptime(input, '%d/%m/%Y')
 except ValueError:
 result = None

 (sebbene l'aggettivo Pythonico non sia esattamente ben definito, il tuo
 esempio *veramente* non lo era..)


totalmente d'accordo, e non sono nemmeno sostituibili. Semplicemente quella
con le RegExp è sbagliata, l'altra no, perché?

import re
re.match(
^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d,
31/02/1988) # nota bene, il 31 febbraio probabilmente non esiste

In questo caso con la regexp puoi magari avvicinarti alla correttezza, puoi
farle estremamente sofisticate e riconoscere i mesi da 30/31/28 giorni e
arrivare a considerare gli anni bisestili ottenendo qualcosa tipo:

 
^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
[via http://regexadvice.com/blogs/mash/archive/2004/04/02/300.aspx]

ma si tratterebbe probabilmente di masturbazione più che programmazione :P

[scusate ho letto ora ti dice anche se l'anno è bisestile, ma ormai avevo
scritto! :P]


 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com

 __**_
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/**mailman/listinfo/pythonhttp://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Giorgio Zoppi
ok. L'esempio di daniele e quello corretto..Buona serata!

Il 28 luglio 2012 21:42, Alberto Granzotto agran...@gmail.com ha scritto:


 2012/7/28 Daniele Varrazzo p...@develer.com

 On 2012-07-28 19:49, Giorgio Zoppi wrote:

 Marco compariamo

 RegExp:
 import re

 date = 01/02/1988
 checkdate =^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[-
 /.](19|20)\d\d
 obj = re.compile(checkdate)
 if (re.match(date)):
  print 'Valid date'


 Ti dice anche se un anno è bisestile?


 Datetime
 from datetime import datetime
 date = '10/12/1977'
 input = date.replace(/,)
 result = None
 format = ['%d%m%Y']
   try:
 result = datetime.strptime(input, format)
   except:
  pass

 if (result):
 print Validate


 Il secondo e' piu pythonico...ma lungo. Hai altre opzioni?


 Basta toglierci tutta la roba che non serve. Che poi che vuol dire, più un
 pezzo di codice è corto e meglio è? L'estetica del perl?

 from datetime import datetime
 input = '10/12/1977'
 try:
 result = datetime.strptime(input, '%d/%m/%Y')
 except ValueError:
 result = None

 (sebbene l'aggettivo Pythonico non sia esattamente ben definito, il tuo
 esempio *veramente* non lo era..)


 totalmente d'accordo, e non sono nemmeno sostituibili. Semplicemente quella
 con le RegExp è sbagliata, l'altra no, perché?

 import re
 re.match(
 ^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d,
 31/02/1988) # nota bene, il 31 febbraio probabilmente non esiste

 In questo caso con la regexp puoi magari avvicinarti alla correttezza, puoi
 farle estremamente sofisticate e riconoscere i mesi da 30/31/28 giorni e
 arrivare a considerare gli anni bisestili ottenendo qualcosa tipo:


 ^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
 [via http://regexadvice.com/blogs/mash/archive/2004/04/02/300.aspx]

 ma si tratterebbe probabilmente di masturbazione più che programmazione :P

 [scusate ho letto ora ti dice anche se l'anno è bisestile, ma ormai avevo
 scritto! :P]



 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python



 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
Favola -Moda.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Daniele Varrazzo

On 2012-07-28 20:42, Alberto Granzotto wrote:



^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
[via http://regexadvice.com/blogs/mash/archive/2004/04/02/300.aspx]

ma si tratterebbe probabilmente di masturbazione più che 
programmazione :P


[scusate ho letto ora ti dice anche se l'anno è bisestile, ma ormai 
avevo

scritto! :P]


No, anzi, grazie per questo capolavoro!

--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Marco Beri
Il giorno 28/lug/2012, alle ore 22:40, Daniele Varrazzo p...@develer.com
ha scritto:

No, anzi, grazie per questo capolavoro!


E allora mi sento in dovere di copia-incollare il paragrafo di un
famosissimo libro :-)

Ciao.
Marco.


Ma.attenzione.a.non.esagerare!

Esiste un detto famoso riguardante le regular expression:

Un tizio aveva un problema e disse So come risolverlo: userò una regular
expression!. E così il tizio ebbe due problemi...

Non crediamo che sia così, però bisogna fare attenzione a usare le re-
gular expression per quello che sono, senza esagerare.

Come ultimo esempio vogliamo dare un'occhiata a una regular ex- pression
che forse non rispetta il consiglio di non esagerare.

Si tratta di una regular expression che controlla la correttezza di un
indirizzo email:

   ^((([a-z]|[0-9]|!|#|$|%||'|\*|\+|\-|/|=|\?|\^|_|`|
   \{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%||'|\*|\+|\-|/|
   =|\?|\^|_|`|\{|\||\}|~)+)*)@([a-z]|[0-9])([a-z]
   |[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-
   z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad
   |ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz
   |bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv
   |ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy
   |cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr
   |gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt|gg|gn
   |gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it
   |jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly
   |li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx
   |fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne
   |ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt
   |pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs
   |sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch
   |sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua
   |ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|co
   m|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop

   |museum|arpa))|[0-9]){1,3}\.){3}([0-9]){1,3})




1 Appendice B



[image: page188image1196]


   
)|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$

Questo capolavoro di ingegnosità (e di costanza) è dovuto ad un certo
Philippe Benthien che l'ha inserito nel sito http://re- gexlib.com

Siamo sicuri che questa regular expression controlla alla perfezione la
correttezza formale di un indirizzo email.

Però se il signor Mario Rossi, il cui indirizzo è
mario.ro...@posta.it scrivesse
per errore mario.ri...@posta.it, la regular expression non gli direbbe che
ha sbagliato. Viceversa il signor John Smith. il cui indi- rizzo email è
john.sm...@people.mobi, non potrebbe inserire il suo indirizzo se il
controllo fosse affidato a questa regular expression...

Per la cronaca .mobi è un dominio di primo livello introdotto nel 2006.
page188image1196.png___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] controllo della data

2012-07-28 Per discussione Giorgio Zoppi
interessante...

Il giorno 28 luglio 2012 23:05, Marco Beri marcob...@gmail.com ha scritto:


 Il giorno 28/lug/2012, alle ore 22:40, Daniele Varrazzo p...@develer.com
 ha scritto:

 No, anzi, grazie per questo capolavoro!


 E allora mi sento in dovere di copia-incollare il paragrafo di un
 famosissimo libro :-)

 Ciao.
 Marco.


 Ma.attenzione.a.non.esagerare!

 Esiste un detto famoso riguardante le regular expression:

 Un tizio aveva un problema e disse So come risolverlo: userò una regular
 expression!. E così il tizio ebbe due problemi...

 Non crediamo che sia così, però bisogna fare attenzione a usare le re-
 gular expression per quello che sono, senza esagerare.

 Come ultimo esempio vogliamo dare un'occhiata a una regular ex- pression
 che forse non rispetta il consiglio di non esagerare.

 Si tratta di una regular expression che controlla la correttezza di un
 indirizzo email:

^((([a-z]|[0-9]|!|#|$|%||'|\*|\+|\-|/|=|\?|\^|_|`|
\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%||'|\*|\+|\-|/|
=|\?|\^|_|`|\{|\||\}|~)+)*)@([a-z]|[0-9])([a-z]
|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-
z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad
|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz
|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv
|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy
|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr
|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt|gg|gn
|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it
|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly
|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx
|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne
|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt
|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs
|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch
|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua
|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|co
m|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop

|museum|arpa))|[0-9]){1,3}\.){3}([0-9]){1,3})


   
   
   1   Appendice B

   
   
   [image: page188image1196]
   
   
  
 )|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$

 Questo capolavoro di ingegnosità (e di costanza) è dovuto ad un certo
 Philippe Benthien che l'ha inserito nel sito http://re- gexlib.com

 Siamo sicuri che questa regular expression controlla alla perfezione la
 correttezza formale di un indirizzo email.

 Però se il signor Mario Rossi, il cui indirizzo è mario.ro...@posta.it 
 scrivesse
 per errore mario.ri...@posta.it, la regular expression non gli direbbe
 che ha sbagliato. Viceversa il signor John Smith. il cui indi- rizzo email
 è john.sm...@people.mobi, non potrebbe inserire il suo indirizzo se il
 controllo fosse affidato a questa regular expression...

 Per la cronaca .mobi è un dominio di primo livello introdotto nel 2006.


 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
Favola -Moda.
page188image1196.png___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python