2011-09-19 Regex Day

104
www.staffannoteberg.com

description

2011 09-19 Regex Day More info: www.staffannoteberg.com www.twitter.com/staffannoteberg

Transcript of 2011-09-19 Regex Day

Page 1: 2011-09-19 Regex Day

www.staffannoteberg.com

Page 2: 2011-09-19 Regex Day

Jamie Zawinski

Page 3: 2011-09-19 Regex Day

DevOps Borat

Page 4: 2011-09-19 Regex Day

Andy Hood

Page 5: 2011-09-19 Regex Day

Donald Knuth

Page 6: 2011-09-19 Regex Day

stackoverflow.com

Page 7: 2011-09-19 Regex Day

XKCD

Page 8: 2011-09-19 Regex Day

User Friendly

Page 9: 2011-09-19 Regex Day

Automata

Page 10: 2011-09-19 Regex Day

Abstract Machine

Page 11: 2011-09-19 Regex Day

Directed Graph

Page 12: 2011-09-19 Regex Day

Alphabet

Page 13: 2011-09-19 Regex Day

Latch Alphabet

Page 14: 2011-09-19 Regex Day

States

Page 15: 2011-09-19 Regex Day

Latch States

Page 16: 2011-09-19 Regex Day

Transition Table

Page 17: 2011-09-19 Regex Day

Latch Trans-Tab

Page 18: 2011-09-19 Regex Day

NFA

Page 19: 2011-09-19 Regex Day

Greedy

Page 20: 2011-09-19 Regex Day

NFA/DFA Graph

Page 21: 2011-09-19 Regex Day

Backtracking

Page 22: 2011-09-19 Regex Day

DFA

Page 23: 2011-09-19 Regex Day

Pushdown Automata

Page 24: 2011-09-19 Regex Day

Chomsky hierarchy

Page 25: 2011-09-19 Regex Day

Three Operators

Page 26: 2011-09-19 Regex Day

Glob

Page 27: 2011-09-19 Regex Day

History

Page 28: 2011-09-19 Regex Day

grep -E and egrep

Page 29: 2011-09-19 Regex Day

Match One

Page 30: 2011-09-19 Regex Day

#1: Concat

Page 31: 2011-09-19 Regex Day

#2: Alternation

Page 32: 2011-09-19 Regex Day

Leftmost

Page 33: 2011-09-19 Regex Day

#3: Kleene Star

Page 34: 2011-09-19 Regex Day

Precedence

Page 35: 2011-09-19 Regex Day

Even

Page 36: 2011-09-19 Regex Day

FA ↔ Regex ↔ Graph

Page 37: 2011-09-19 Regex Day

Regex → Automaton

Page 38: 2011-09-19 Regex Day

Regex Traits # Declarative # Domain Specific (DSL) # No whitespace or delimeters

# Declarative # Domain Specific (DSL) # No whitespace or delimiters

Page 39: 2011-09-19 Regex Day

Architecture

Page 40: 2011-09-19 Regex Day

Functions

Page 41: 2011-09-19 Regex Day

Func #1: Verify

Page 42: 2011-09-19 Regex Day

Func #2: Find

Page 43: 2011-09-19 Regex Day

Func #3: Replace

Page 44: 2011-09-19 Regex Day

Func #4: Filter

Page 45: 2011-09-19 Regex Day

Func #5: Parse

Page 46: 2011-09-19 Regex Day

Quantifiers

Page 47: 2011-09-19 Regex Day

Quant Algebra

Page 48: 2011-09-19 Regex Day

Possessive Quant

Page 49: 2011-09-19 Regex Day

Meta chars

Page 50: 2011-09-19 Regex Day

Dot

Page 51: 2011-09-19 Regex Day

Shrthnds

Page 52: 2011-09-19 Regex Day

Unicode

Page 53: 2011-09-19 Regex Day

Escape

Page 54: 2011-09-19 Regex Day

Character Class

Page 55: 2011-09-19 Regex Day

Char Class Escape

Page 56: 2011-09-19 Regex Day

Canonical

Page 57: 2011-09-19 Regex Day

Non-printable

Page 58: 2011-09-19 Regex Day

Back Reference

Page 59: 2011-09-19 Regex Day

Finite

Page 60: 2011-09-19 Regex Day

Regular Regex

Page 61: 2011-09-19 Regex Day

Capture & Back ref

Page 62: 2011-09-19 Regex Day

Non-capturing

Page 63: 2011-09-19 Regex Day

Named Captures

Page 64: 2011-09-19 Regex Day

Atomic Group

Page 65: 2011-09-19 Regex Day

Assertion

Page 66: 2011-09-19 Regex Day

Anchors

Page 67: 2011-09-19 Regex Day

Modes

Page 68: 2011-09-19 Regex Day

Lookarounds

Page 69: 2011-09-19 Regex Day

Capture Cond

Page 70: 2011-09-19 Regex Day

Assert Cond

Page 71: 2011-09-19 Regex Day

Prime numbers

Page 72: 2011-09-19 Regex Day

Best Practices

Page 73: 2011-09-19 Regex Day

IS0 8601 – Global Time

Page 74: 2011-09-19 Regex Day

IS0 8601 – Global Time

Page 75: 2011-09-19 Regex Day

Applications

Page 76: 2011-09-19 Regex Day

Literal

Page 77: 2011-09-19 Regex Day

Dialects

Page 78: 2011-09-19 Regex Day

Dialects

Page 79: 2011-09-19 Regex Day

Split

Page 80: 2011-09-19 Regex Day

Split

Page 81: 2011-09-19 Regex Day

Study example

Page 82: 2011-09-19 Regex Day

Inside Out

Page 83: 2011-09-19 Regex Day

Accept incorrect

Page 84: 2011-09-19 Regex Day

Deny correct

Page 85: 2011-09-19 Regex Day

Simple method

Page 86: 2011-09-19 Regex Day

Web Test Bench

Page 87: 2011-09-19 Regex Day

REPL Test Bench

Page 88: 2011-09-19 Regex Day

Consider Modes

Page 89: 2011-09-19 Regex Day

Documentation

Page 90: 2011-09-19 Regex Day

Imperative & Regex

Page 91: 2011-09-19 Regex Day

Regex Inject Attack

Page 92: 2011-09-19 Regex Day

Group over Prec.

Page 93: 2011-09-19 Regex Day

Use Lazy Quantifiers

Page 94: 2011-09-19 Regex Day

Context Unaware

Page 95: 2011-09-19 Regex Day

Fail Fast

Page 96: 2011-09-19 Regex Day

Don't over-escape

Page 97: 2011-09-19 Regex Day

Compile Once

Page 98: 2011-09-19 Regex Day

Economical Dot

Page 99: 2011-09-19 Regex Day

+ over *

Page 100: 2011-09-19 Regex Day

Boundaries in Find

Page 101: 2011-09-19 Regex Day

No Nested Quantifiers

Page 102: 2011-09-19 Regex Day

Palindrome

Page 103: 2011-09-19 Regex Day

TDD

Page 104: 2011-09-19 Regex Day

www.staffannoteberg.com