Hum, suite a ce post ou pseudocode m'avait donné un solution géniales en utilisant les expressions régulières (dont je n'avais jamais encore entendu parlé).
Je me suis penché donc plusieurs heures sur la compréhension de ces expressions, et je butes sur certains points.
Si l'on prend l'ex de c'elle dont j'ai besoin :
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
La première chose c'est que je ne comprend trop l'histoire de cet "backreference" cad les "?:" aprés le "("
ensuite j'ai réellement du mal a comprendre les :
dans les 2 cas ???
Effectivement, pour le tld je ne vois pas pourquoi on fait :
[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
et pas
Quand a :
(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
on pourrait aussi faire plus simple
[a-z0-9!#$%&'*+/=?^_`{|}~-\.]*
Ce qui donnerai bien plus simplement :
[a-z0-9!#$%&'*+/=?^_`{|}~-\.]+@[a-z0-9-\.]+[a-z0-9]+
au lieu de
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Merci, car la je suis un peu perdu ...
Partager