regex programming porn

of 31/31
Regex Programming Porn Les regex comme vous ne avez jamais vus Human Talks Lyon, 08/10/13 / @gautier_difolco

Post on 29-Jul-2015

578 views

Category:

Technology

1 download

Embed Size (px)

TRANSCRIPT

1. Regex Programming Porn Les regex comme vous ne avez jamais vus Human Talks Lyon, 08/10/13 / @gautier_difolco 2. regular expressions is #programming #porn, you always feel guilty and dirty after that :'( 3. Deux solutions : Plus de pr0n Plus de Regex 4. Notes Prsentation des regex PCRE (et non POSIX) Nous parlerons de regex pour viter le dbat expressions rgulires vs expressions rationnelles Prsentation et environnement de benchmarks disponibles sur https://github.com/blackheaven/regex_programming_porn 5. Plan Constitutifs de base Changements du comportement d'valutation Un exemple qui fait saigner du nez 6. Constitutifs de base 7. /PATTERN/OPTIONS /at/ A cat eats a black fat rat 8. Alternative monocaractre /[cft]/ A cat eats a black fat rat 9. Exclusion monocaractre /[^a]/ A cat eats a black fat rat /[^rt]/ A cat eats a black fat rat 10. Multiplicit 0 ou 1 /at?/- /at{0,1}/- /at{,1}/ A cat eats a black fat rat 0 inf. /at*/- /at{0,}/ A cat eats a black fat rat 1 inf. /at+/- /at{1,}/ A cat eats a black fat rat n m /at{n,m}/ A cat eats a black fat rat n /at{n}/ A cat eats a black fat rat 11. Classes de caractres Intervals /[a-z]/ Hier, j'ai termin 6h00. Classes prdefinies /[w]/vs /[[:alnum]]/ Hier, j'ai termin 6h00. Jocker /.W/ Hier, j'ai_termin__6h00. Non-quivalences cause des accents dans certains langages Accents /[=e=]/ Hier, j'ai termin 6h00. 12. Capture / Alternatives multi- caractres /(ca|ts)/ A cat eats a black fat rat /(.)(?:la|at)/ A cat eats a black fat rat En PCRE /(bla|blac)/ A cat eats a black fat rat En POSIX /(bla|blac)/ A cat eats a black fat rat 13. Changements du comportement d'valutation 14. Ancres Dbut /^./ A cat eats a black fat rat Fin /.$/ A cat eats a black fat rat Dlimiteur de mots /.atb/ A cat eats a black fat rat Qui est diffrent de l'espace /.ats/ A cat_eats a black fat_rat$ 15. Options /PATTERN/OPTIONS Insensibilit la casse /a/i A cat eats a black fat rat Prise en compte des retours la ligne des ancres /at$/m A catn eats a black fat rat$ Prise en compte des retours pour le point /at./svoire /at./s A catn eats a black fat_rat 16. Commentaires /at#Chercheat/x A cat eats a black fat rat 17. Comportements glouton Chercher la plus longue correspondance /a.*t/ A cat eats a black fat rat Chercher la plus courte correspondance /a.*?t/ A cat eats a black fat rat 18. Rfrences aux correspondances Les correspondances captures sont accessible via 1 9 Chercher les balise contenu /.*1>/

19. Motifs prospectifs Positif /(?=.*[A-Z])(?=.*d).{5,}/ MyPassword Ngatif /(?=.*[A-Z])(?!.*d).{5,}/ MyPassword 20. Motifs retrospectifs Positif /(?