avega elevate 2011 - regex av staffan nöteberg

57
© blog.staffannoteberg.com (1) Regex Habits Regex

Upload: staffan-noeteberg

Post on 19-May-2015

440 views

Category:

Technology


2 download

DESCRIPTION

Regex presentation at Avega Elevate 2011 by Staffan Nöteberg

TRANSCRIPT

Page 1: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (1)Regex Habits

Regex

Page 2: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (2)Regex Habits

Staffan Nöteberg

Page 3: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (3)Regex Habits

Pomodoro-kurs 7 september

Page 4: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (4)Regex Habits

Two-up

Page 5: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (5)Regex Habits

Glob

Page 6: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (6)Regex Habits

Origin

Page 7: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (7)Regex Habits

Functions

Page 8: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (8)Regex Habits

Directed Graph (nondeterministic)

Page 9: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (9)Regex Habits

Alphabet

Page 10: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (10)Regex Habits

States

Page 11: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (11)Regex Habits

Transition Table

Page 12: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (12)Regex Habits

Nondeterministic Finite Automata (NFA)

Page 13: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (13)Regex Habits

Directed Graph (DFA/NFA)

Page 14: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (14)Regex Habits

Deterministic Finite Automata (DFA)

Page 15: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (15)Regex Habits

Regular Expressions

Page 16: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (16)Regex Habits

Architecture

Page 17: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (17)Regex Habits

Matching One Character

Page 18: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (18)Regex Habits

Operator #1: Concatenation

Page 19: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (19)Regex Habits

Operator #2: Kleene Star

Page 20: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (20)Regex Habits

Operator #3: Alternation

Page 21: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (21)Regex Habits

Quiz #1

((nyårs|midsommar|jul)(afton|dagen))|

(annandag (påsk|jul))|((långfre|påsk|pingst)dagen)|

((alla helgons |kristi himmelsfärds |sveriges national)dag)|

trettondag jul|första maj

Page 22: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (22)Regex Habits

Parentheses

Page 23: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (23)Regex Habits

Quiz #2

saippuakivikauppias

Page 24: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (24)Regex Habits

Finite

Page 25: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (25)Regex Habits

Regular Regex?

Page 26: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (26)Regex Habits

Greedy (Kleene Star)

Page 27: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (27)Regex Habits

Backtracking (NFA)

Page 28: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (28)Regex Habits

Leftmost (NFA Alternation)

Page 29: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (29)Regex Habits

Dialects

Page 30: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (30)Regex Habits

Regex Literal

Page 31: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (31)Regex Habits

Applications

Page 32: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (32)Regex Habits

Architecture

Page 33: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (33)Regex Habits

Regex Objects

Page 34: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (34)Regex Habits

Match Object

Page 35: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (35)Regex Habits

Quantifiers

Page 36: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (36)Regex Habits

Quiz #3

(0|1|2)(0|1|2|3|4|5|6|7|8|9){2}

Page 37: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (37)Regex Habits

Quantifier algebra

Page 38: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (38)Regex Habits

Positive Closure over Closure

Page 39: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (39)Regex Habits

Character Class

Page 40: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (40)Regex Habits

Quiz #4

[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,6}

Page 41: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (41)Regex Habits

Quiz #5

25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]

Page 42: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (42)Regex Habits

Metacharacters – shorthands

Page 43: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (43)Regex Habits

Quiz #6

1(0|1)\d{3}

Page 44: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (44)Regex Habits

Quiz #7

(((00|\+)46|0)8)?\d{5,8}

Page 45: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (45)Regex Habits

Metacharacters – dot

Page 46: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (46)Regex Habits

Economical use of Dot

Page 47: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (47)Regex Habits

Quiz #8

.+@.+

Page 48: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (48)Regex Habits

Metacharacters – Unicode

Page 49: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (49)Regex Habits

Quiz #9

\d+(,\d\d)?\s?\u20AC

Page 50: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (50)Regex Habits

Assertions – Anchor

Page 51: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (51)Regex Habits

Quiz #10

^\s+

\s+$

Page 52: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (52)Regex Habits

Assertions – Lookaround

Page 53: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (53)Regex Habits

Quiz #11

^(?=.*\d)(?=.*([a-zA-Z])).{8,40}$

Page 54: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (54)Regex Habits

Mode

Page 55: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (55)Regex Habits

Capture and Backreference

Page 56: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (56)Regex Habits

Quiz #12

<(\w+)[^>]*>[^<]*</\1>

Page 57: Avega Elevate 2011 - Regex av Staffan Nöteberg

© blog.staffannoteberg.com (57)Regex Habits

Staffan Nöteberg

Book:Pomodoro Technique Illustratedwww.pomodoro-book.com

Twitter: staffannoteberghttp://blog.staffannoteberg.com