Slide 1

Slide 1 text

ALL ABOUT REGULAR EXPRESSIONS JADE ALLEN @AVOCADOSUPERFAN

Slide 2

Slide 2 text

OVERVIEW • ORIGIN, THEORY AND BASIC ALGEBRA • DETERMINISTIC AND NONDETERMINISTIC FINITE AUTOMATA • WAIT. WHAT? WHY ARE WE TALKING ABOUT EDITORS? • FERAL REGULAR EXPRESSIONS

Slide 3

Slide 3 text

MCCULLOCH-PITTS NEURON MODEL

Slide 4

Slide 4 text

STEPHEN KLEENE

Slide 5

Slide 5 text

ALGEBRA OF REGULAR EVENTS

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

DETERMINISTIC FINITE AUTOMATA •EACH STATE TRANSITION IS UNIQUELY DETERMINED BY THE SOURCE STATE AND INPUT SYMBOL •READING AN INPUT SYMBOL IS REQUIRED FOR EACH STATE TRANSITION •ADVANTAGE: EASY TO IMPLEMENT AS A PROGRAM •DRAWBACK: STATE EXPLOSION

Slide 8

Slide 8 text

REGULAR EXPRESSION SEARCH ALGORITHM

Slide 9

Slide 9 text

Σ = { A, B, C, D } A(B|C)*D

Slide 10

Slide 10 text

WILL IT MATCH? •INPUT: AD – MATCH? •INPUT: ABBBBBBBB – MATCH? •INPUT: ADCD – MATCH? 🤔

Slide 11

Slide 11 text

WILL IT MATCH? •INPUT: AD – MATCH? ✅ •INPUT: ABBBBBBBB – MATCH? •INPUT: ADCD – MATCH? 🤔

Slide 12

Slide 12 text

WILL IT MATCH? •INPUT: AD – MATCH? •INPUT: ABBBBBBBB – MATCH? •INPUT: ADCD – MATCH? 🤔

Slide 13

Slide 13 text

WILL IT MATCH? •INPUT: AD – MATCH? •INPUT: ABBBBBBBB – MATCH? ✅ •INPUT: ADCD – MATCH? 🤔

Slide 14

Slide 14 text

WILL IT MATCH? •INPUT: AD – MATCH? •INPUT: ABBBBBBBB – MATCH? •INPUT: ADCD – MATCH? 🤔

Slide 15

Slide 15 text

WILL IT MATCH? •INPUT: AD – MATCH? •INPUT: ABBBBBBBB – MATCH? •INPUT: ADCD – MATCH? ❌ 🤔

Slide 16

Slide 16 text

HMM…

Slide 17

Slide 17 text

INPUT / OUTPUT FORMATS BEFORE TIME SHARING

Slide 18

Slide 18 text

AN ONLINE EDITOR

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

FROM WHERE DOES THE SYNTAX COME?

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

EGREP (1978) • TURING AWARD WINNER 2020 • AWK (LEX, YACC)

Slide 23

Slide 23 text

I HAVE NO ^ AND I MUST MATCH BACK IN THE DAY, NO ONE HAD A “STANDARD KEYBOARD” (*NOR A STANDARD DISPLAY TERMINAL, BUT THAT IS A FUTURE TALK) YOU GET WHAT YOU GOT, AND YOU WERE GRATEFUL EURO-FLAVORED KEYBOARDS MAY OR MAY NOT HAVE “STANDARD” US ASCII CHARACTERS

Slide 24

Slide 24 text

INTO THE WILD… HENRY SPENCER WROTE AND PUBLISHED AN EGREP COMPATIBLE “NEARLY PUBLIC DOMAIN” REGULAR EXPRESSION LIBRARY IN 1986

Slide 25

Slide 25 text

PERL (1987)

Slide 26

Slide 26 text

MAXIMALIST REGEX “TOO MUCH IS NEVER ENOUGH!”

Slide 27

Slide 27 text

PCRE

Slide 28

Slide 28 text

REGEX CONSIDERED HARMFUL

Slide 29

Slide 29 text

RE2

Slide 30

Slide 30 text

SUMMARY Regular expressions originated from mathematical concepts in matching sequences from sets of symbols from alphabets Implementations came from editors and compilers Unix provided facilities to use regex from tools Awk provided a way to use them to trigger actions in a dynamic script Perl added a bunch of features people liked …until they didn’t

Slide 31

Slide 31 text

THANK YOU!

Slide 32

Slide 32 text

BIBLIOGRAPHY • [1] MCCULLOCH, W.S. AND PITTS, W. A LOGICAL CALCULUS OF THE IDEAS IMMANENT IN NERVOUS ACTIVITY, BULLETIN OF MATHEMATICAL BIOLOGY, 1943 • [2] KLEENE, S.C., REPRESENTATION OF EVENTS IN NERVE NETS AND FINITE AUTOMATA, RAND PROJECT MEMO, RM-704, 1951. • [3] RABIN, M. O. AND SCOTT, D. FINITE AUTOMATA AND THEIR DECISION PROBLEMS, IBM JOURNAL OF RESEARCH AND DEVELOPMENT, 1959. • [4] THOMPSON, K., REGULAR EXPRESSION SEARCH ALGORITHM, CACM, JUNE 1968.

Slide 33

Slide 33 text

BIBLIOGRAPHY • [5] DEUTSCH, P., AND LAMPSON, B., AN ONLINE EDITOR, CACM, DECEMBER 1967. • [6] RITCHIE, D., AND THOMPSON, K., QED TEXT EDITOR, BELL LABS TECHNICAL MEMORANDUM, 1970. • [7] AHO, A., AND CORASICK, M. EFFICIENT STRING MATCHING: AN AID TO BIBLIOGRAPHIC SEARCH, CACM, JUNE 1975 • [8] SPENCER, H. USENIX POST, JANUARY 1986, REGEXP(3) (GOOGLE.COM).

Slide 34

Slide 34 text

BIBLIOGRAPHY • [9] FRIEDL, J, MASTERING REGULAR EXPRESSIONS, O’REILLY, 1997. • [10], HAZEL, P., FROM PUNCHED CARDS TO FLAT SCREENS, CIHK.PDF - GOOGLE DRIVE ,2017. • [11] COX, R. REGULAR EXPRESSION MATCHING CAN BE SIMPLE AND FAST (SWTCH.COM), 2007. • [12], COX, R. REGULAR EXPRESSION MATCHING IN THE WILD (SWTCH.COM), 2010.