Regex -- Turku Agile Day 011
-
Upload
staffan-noeteberg -
Category
Technology
-
view
2.881 -
download
3
description
Transcript of Regex -- Turku Agile Day 011
© blog.staffannoteberg.com (1)Regex Habits
Abstract Machine
© blog.staffannoteberg.com (2)Regex Habits
Glob
© blog.staffannoteberg.com (3)Regex Habits
Origin
© blog.staffannoteberg.com (4)Regex Habits
Functions
© blog.staffannoteberg.com (5)Regex Habits
Architecture
© blog.staffannoteberg.com (6)Regex Habits
Directed Graph (nondeterministic)
© blog.staffannoteberg.com (7)Regex Habits
Alphabet
© blog.staffannoteberg.com (8)Regex Habits
States
© blog.staffannoteberg.com (9)Regex Habits
Transition Table
© blog.staffannoteberg.com (10)Regex Habits
Nondeterministic Finite Automata (NFA)
© blog.staffannoteberg.com (11)Regex Habits
Directed Graph (DFA/NFA)
© blog.staffannoteberg.com (12)Regex Habits
Deterministic Finite Automata (DFA)
© blog.staffannoteberg.com (13)Regex Habits
Regular Expressions
© blog.staffannoteberg.com (14)Regex Habits
Matching One Character
© blog.staffannoteberg.com (15)Regex Habits
Operator #1: Concatenation
© blog.staffannoteberg.com (16)Regex Habits
Operator #2: Kleene Star
© blog.staffannoteberg.com (17)Regex Habits
Operator #3: Alternation
© blog.staffannoteberg.com (18)Regex Habits
Quiz #1
Keskiviikko|(Maanan|Tiis|Tors| Perjan|Lauan|Sunnun)tai
© blog.staffannoteberg.com (19)Regex Habits
Parentheses
© blog.staffannoteberg.com (20)Regex Habits
Quiz #2
saippuakivikauppias
© blog.staffannoteberg.com (21)Regex Habits
Finite
© blog.staffannoteberg.com (22)Regex Habits
Regular Regex?
© blog.staffannoteberg.com (23)Regex Habits
Greedy (Kleene Star)
© blog.staffannoteberg.com (24)Regex Habits
Backtracking (NFA)
© blog.staffannoteberg.com (25)Regex Habits
Leftmost (NFA Alternation)
© blog.staffannoteberg.com (26)Regex Habits
Dialects
© blog.staffannoteberg.com (27)Regex Habits
Regex Literal
© blog.staffannoteberg.com (28)Regex Habits
Architecture
© blog.staffannoteberg.com (29)Regex Habits
Regex Objects
© blog.staffannoteberg.com (30)Regex Habits
Match Object
© blog.staffannoteberg.com (31)Regex Habits
Quantifiers
© blog.staffannoteberg.com (32)Regex Habits
Quiz #3
(0|1|2)(0|1|2|3|4|5|6|7|8|9){2}
© blog.staffannoteberg.com (33)Regex Habits
Quantifier algebra
© blog.staffannoteberg.com (34)Regex Habits
Positive Closure over Closure
© blog.staffannoteberg.com (35)Regex Habits
Character Class
© blog.staffannoteberg.com (36)Regex Habits
Quiz #4
[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,6}
© blog.staffannoteberg.com (37)Regex Habits
Quiz #5
25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]
© blog.staffannoteberg.com (38)Regex Habits
Metacharacters – shorthands
© blog.staffannoteberg.com (39)Regex Habits
Quiz #6
2(0|1)\d\d1
© blog.staffannoteberg.com (40)Regex Habits
Quiz #7
(0|(00|\+)358)(4\d|50)\d{7}
© blog.staffannoteberg.com (41)Regex Habits
Metacharacters – dot
© blog.staffannoteberg.com (42)Regex Habits
Economical use of Dot
© blog.staffannoteberg.com (43)Regex Habits
Quiz #8
.+@.+
© blog.staffannoteberg.com (44)Regex Habits
Metacharacters – Unicode
© blog.staffannoteberg.com (45)Regex Habits
Quiz #9
\d+(,\d\d)?\s?\u20AC
© blog.staffannoteberg.com (46)Regex Habits
Assertions – Anchor
© blog.staffannoteberg.com (47)Regex Habits
Quiz #10
^\s+
\s+$
© blog.staffannoteberg.com (48)Regex Habits
Assertions – Lookaround
© blog.staffannoteberg.com (49)Regex Habits
Quiz #11
^(?=.*\d)(?=.*([a-zA-Z])).{8,40}$
© blog.staffannoteberg.com (50)Regex Habits
Mode
© blog.staffannoteberg.com (51)Regex Habits
Capture and Backreference
© blog.staffannoteberg.com (52)Regex Habits
Quiz #12
<(\w+)[^>]*>[^<]*</\1>
© blog.staffannoteberg.com (53)Regex Habits
Lazy Quantifiers
© blog.staffannoteberg.com (54)Regex Habits
Web Test bench
© blog.staffannoteberg.com (55)Regex Habits
REPL Test bench
© blog.staffannoteberg.com (56)Regex Habits
Test-driven development
© blog.staffannoteberg.com (57)Regex Habits
Study data source
© blog.staffannoteberg.com (58)Regex Habits
Accept some incorrect
© blog.staffannoteberg.com (59)Regex Habits
Deny some correct
© blog.staffannoteberg.com (60)Regex Habits
Simple method
© blog.staffannoteberg.com (61)Regex Habits
Shrink or Expand
© blog.staffannoteberg.com (62)Regex Habits
Split
© blog.staffannoteberg.com (63)Regex Habits
Blend imperative and regex
© blog.staffannoteberg.com (64)Regex Habits
Context unaware
© blog.staffannoteberg.com (65)Regex Habits
Consider Regex modes
© blog.staffannoteberg.com (66)Regex Habits
Regex Inject Attack
© blog.staffannoteberg.com (67)Regex Habits
Documentation
© blog.staffannoteberg.com (68)Regex Habits
Use Lazy Quantifiers
© blog.staffannoteberg.com (69)Regex Habits
Fail fast
© blog.staffannoteberg.com (70)Regex Habits
Compile only once
© blog.staffannoteberg.com (71)Regex Habits
Minimize Nested Quantifiers
© blog.staffannoteberg.com (72)Regex Habits
Boundaries in find
© blog.staffannoteberg.com (73)Regex Habits
Applications
© blog.staffannoteberg.com (74)Regex Habits
Resources
© blog.staffannoteberg.com (75)Regex Habits
Staffan Nöteberg
Book:Pomodoro Technique Illustratedwww.pomodoro-book.com
Twitter: staffannoteberghttp://blog.staffannoteberg.com