thinking regular expressions
DESCRIPTION
My point is that I think many developers see it as hard/complex to understand and use regular expressions, but by getting the basic thinking right I believe it is really easy to getting started to use this powerful tool. The presentations was supposed to be a kick start. Note! This presentations is not supposed to stand alone, it is done to support my talk.TRANSCRIPT
![Page 1: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/1.jpg)
Thinking regular
expression is your way to get
started to use regular expressions
![Page 2: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/2.jpg)
Mönster sökningvad är regex.
![Page 3: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/3.jpg)
Validering
![Page 4: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/4.jpg)
NOTIS: 12345, the bugg x
![Page 5: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/5.jpg)
2008-02-212008 /03 / 22200804232008 05 24
![Page 6: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/6.jpg)
21-02-200822-03-200823-04-200824-05-2008
![Page 7: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/7.jpg)
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:( ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\ ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+ (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?: (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n) ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\ r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n) ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t] )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])* )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*) *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+ |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031 ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]( ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(? :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(? :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(? :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)? [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(§?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]| \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<> @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|" (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(? :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[ \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000- \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|( ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,; :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([ ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\" .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\ ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\ [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\] |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0 00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\ .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@, ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(? :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])* (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[ ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\] ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*( ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:( ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[ \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(? :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+| \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?: [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\ ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[" ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n) ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<> @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@, ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)? (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[ "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t]) *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]) +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\ .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:( ?:\r\n)?[ \t])*))*)?;\s*)
![Page 8: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/8.jpg)
![Page 9: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/9.jpg)
![Page 10: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/10.jpg)
![Page 11: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/11.jpg)
^
![Page 12: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/12.jpg)
$
![Page 13: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/13.jpg)
^grey
![Page 14: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/14.jpg)
^grey
![Page 15: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/15.jpg)
^grey
![Page 16: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/16.jpg)
^grey
![Page 17: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/17.jpg)
^grey
![Page 18: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/18.jpg)
^grey
![Page 19: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/19.jpg)
^grey$
![Page 20: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/20.jpg)
^grey• beginning of line ^• followed immediately by g• followed immediately by r• followed immediately by e• followed immediately by y
![Page 21: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/21.jpg)
//Everybody get in front/
You know regular expressions
![Page 22: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/22.jpg)
![Page 23: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/23.jpg)
[ea]Character Classes
![Page 24: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/24.jpg)
[1234]Character Classes
![Page 25: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/25.jpg)
[1-4]Character Classes
![Page 26: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/26.jpg)
[^1-4]Character Classes
![Page 27: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/27.jpg)
.Any Character
![Page 28: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/28.jpg)
+Repetition
![Page 29: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/29.jpg)
*Repetition
![Page 30: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/30.jpg)
\dShortcut [0-9]
![Page 31: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/31.jpg)
\DShortcut [^0-9]
![Page 32: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/32.jpg)
()Backreference
![Page 33: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/33.jpg)
.+[?]Questions
![Page 34: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/34.jpg)
![Page 35: Thinking Regular Expressions](https://reader035.vdocuments.net/reader035/viewer/2022062419/55890a0ed8b42ac2218b4593/html5/thumbnails/35.jpg)