RegS?Exunendliche Möglichkeiten zum Analysieren, Scrapenetc.1TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
What‘sitgoodfor…?TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen2http://www.xkcd.com/208/
Johan HülsenProjektmanager @ TRG – The Reach GroupAnalyseDatenmanagementIT-BetreuungKein ProgrammiererEin bisschen ExcelTwitter.com/johanstormarnFacebook.com/johan.huelsenXing.com/profile/Johan_vHuelsenSkype: JohanstormarnWer spricht?TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen3
Ein Beispiel zum Einstieg | ITRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen4
Suchen: \t*(<.*?>(?!http://).*</.*?>\r|</?loc>|</?.*> ?\r*)Ersetzen: nichtsEs bleiben zwei leere Zeilen (erste + letzte) und alle URLsEine RegEx später:TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen5
Unsere Regex: \t*Es kann ein Tab da stehenSlow Motion! | #1TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen6<url> 		<loc>http://blogs-optimieren.de/</loc> 		<lastmod>2011-03-10T09:32:43+00:00</lastmod> 		<changefreq>daily</changefreq> 		<priority>1.0</priority> 	</url> 	<url> …
Unsere Regex: <.*?>(?!http://).*</.*?>\rIrgendwas steht zwischen ‚<‘ und ‚>‘danach kommt was (aber nicht http://)und ein schließender Tag gefolgt von einem ZeilenumbruchSlow Motion | #2TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen7<url> <loc>http://blogs-optimieren.de/</loc> <lastmod>2011-03-10T09:32:43+00:00</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> …
Unsere Regex: </?loc><loc> oder </loc>Slow Motion | #3TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen8<url> <loc>http://blogs-optimieren.de/</loc> </url> <url> …
</?.*> ?\r*Ein öffnender oder schließender TagGefolgt von einem Leerzeichen (oder auch nicht)Gefolgt von einem Zeilenumbruch (oder auch nicht)Slow Motion | #4TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen9<url> http://blogs-optimieren.de/</url> <url> …
#1 (#2 | #3 | #4)\t*	(	<.*?>(?!http://).*</.*?>\r	|	</?loc>	|	</?.*> ?\r*	)Die Pipe ‚|‘ steht für ein oderDie Klammern sorgen für die ReihenfolgeSlow Motion | DONETRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen10http://blogs-optimieren.de/
Agenda11TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
UraltGrundlagen 1956 aus der MedizinSuchen und ErsetzenWildcards on SteroidsAlles, was durch ein Muster zu beschreiben ist, kann mit RegEx ausgelesen und ersetzt werdenGefühlte 1.000 Dialekte(mit PREG/PCRE kann man aber eigentlich nicht falsch liegen)Was ist RegS?ExTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen12
Search andReplaceDaten umformatierenListen zu TabellenURL-/HTML-/Text- Muster erkennen und ersetzenSearch andDestroyMüllabfuhrSearch…Validierung von EingabenNutzernamenPasswörter (X-Zeichen nach Schema XYZ)TelefonnummernMail-AdressenURLsNever trust a userAnwendungsfälleTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen13
Agenda14TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
Basics | Brauchbare HilfeTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen15Ganz groß: http://www.slideshare.net/andreizm/andreis-regex-clinicHTML und RegEx werden niemals echte Freunde: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
Vernünftiger Text-EditorTextwrangler (Mac)Notepad++ (Windows)VIM (Unix/Terminal)Validatoren hilfreich für EinsteigerEinfach mal Googlen… Validator +RegexReggy (http://reggyapp.com/) OSX-ToolCheatsheetshttp://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/Gibtaber nocheinigeandereTerminal…Basics | ToolsTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen16
Zeichen gruppieren[a-z] -> [a-h] geht natürlich auch[A-Z] -> [A-H] geht natürlich auch[0-9] -> [1-5] geht natürlich auch[ ;.,:!?]Shortcuts für Zeichenklassen\s -> whitespaces\S -> kein Whitespace\d -> 0-9\D -> kein 0-9\w -> Wort\W -> kein WortBasics | ZeichenklassenTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen17
[a-z] = 1[]+ = >1[]? = 1 oder 0[]* = 0, >1 []{3} = 3[]{3,5} = 3, 4, 5+ und * lassen sich mit einem ? Von gierig auf genügsam schaltenBasics | QuantorenTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen18
^ -> Zeilenanfang$ -> Zeilenende| -> oder\ -> Befehlszeichen die Sonderbedeutung nehmenAnker und AnderesTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen19
Agenda20TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
Leerzeilen löschen\r+ durch \r Leerzeilen löschenDatum umformatieren01.02.1900 durch 1900-02-01(\d{2}).(\d{2}).(\d{4}) durch \3-\2-\1HTML Tags loswerden<.+?> oder <[^>]+> je nach EnginePrinzipiell ist HTML nicht durch RegEx brauchbar zu parsenBestimmte Dateien aus der Liste löschen.*\.(jpg|jpeg|css|js)Grep „Google|Slurp|Bing“Was braucht man sonst andauernd?TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen21
Prinzipiell alles filterbarReferrerBrowsertypen…KeywordsGoogle AnalyticsTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen22
(bh\s|\sbh)|(har[dt]|soft)[-\s]?core|(male|fem)[-\s]?(joy|dom)|(oben|unten)[\s ]+ohne|(popo|^po$)|(tabu|hemmungs)los|(three|four|\d)some|(ver|dreck)sau|(wank|red|tim|porn)[\s-]?tube|(x|call)(video|girl)|[aäe]+rsch|[kc]lit|[sf]uck|[v]i(chs|x)|[vf][oeö]+geln|[vf]otze|\d+yo|abuse|ad[au]lt|am+a+t+[öeu]+r|anal(?![yblgn])|ba(nged|be|rely)|bangb|be(haart|sam)|bl(ow[- ]?jo[bp]|asen)|bo+(ndage|b)|bordell|br[üue]+st|breast|buk+ake|bum?s(en|ig)|butt|cam(s|el[-\s]?toe)|catfight|chick|cleavage|closeup|creampie|cu(nt|m|ckold)|de+pthroat|dil+do|dog+(y|ie)|doktor[- ]?spiele|domina|dp|dreier|eb+o+n+y|eichel|eja[kc]ul|entjungfer|ere[kc]t|erot[hi]+([gck]|sch)|f[au]ndorado|facesitting|facial|fetisc?h|feucht|fi(e?ken|ck)|finger(ing|n)|fisti|fkk|g[\s-]?(punkt|spot)|gangbang|geil|geschlechts(verkehr|akt)|girls?(friend|s[-\s]?gone[-\s]?wild)|ggw|gloryhole|grann(y|ies)|h[ea]nt[ae][iy]|hairy|hardcore|hure|in[zc](est|ucht)|interracial|intim|joyclub|kam+a[zs]utra|[kc]oitus|la[bp]+danc|ladyboy|latex|latina|le(s[bp]|cken)|livechat|lo(lita|vetoy)|luder|m[öoe]+p?se|mast[eurbi]+(ren|ate|tion)|mature|milf|muschi|n[iy](lon|mph[oe])|nac?k(t|ig|ed)|naughty|nip+[el]{2,}|nud(e|is?t)|nutte|onanieren|org?(asm|y|al)|p[0o]rn|p[äae]+d(oph|[äae]+rast)|p[ro]+n|pant(y|ies)|pe(nis|rvers|t+ing)|pee|penetrat|penthouse|pi(ss|nkel)|pim+(el|pern)|playboy|pop+en|potenz|p[r0o]+n|privat|prostitu|puff|puss[iy]|rap(ing|ed)|ras(iert|ur|ieren)|rimjob|rosette|sch(lampe|w[aä]nz)|schwul|seksfilmpjes|selbstbefr|sex|skirt|sklav(in|e)|slip|span+(er|ked)|sperma|squirt|str(i[pb]|a[bp]s)|superheroines|swinger|tanga|teen(s|i|y|pics|cam)|tit+[yies]|trans|vagina|vibrator|vorhaut|voy[euoöä]+r|wetRegEx? RegSex!TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen23
Agenda24TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen

RegS?ex — SEO-Campixx 2011

  • 1.
    RegS?Exunendliche Möglichkeiten zumAnalysieren, Scrapenetc.1TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
  • 2.
    What‘sitgoodfor…?TRG | SEOCAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen2http://www.xkcd.com/208/
  • 3.
    Johan HülsenProjektmanager @TRG – The Reach GroupAnalyseDatenmanagementIT-BetreuungKein ProgrammiererEin bisschen ExcelTwitter.com/johanstormarnFacebook.com/johan.huelsenXing.com/profile/Johan_vHuelsenSkype: JohanstormarnWer spricht?TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen3
  • 4.
    Ein Beispiel zumEinstieg | ITRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen4
  • 5.
    Suchen: \t*(<.*?>(?!http://).*</.*?>\r|</?loc>|</?.*> ?\r*)Ersetzen:nichtsEs bleiben zwei leere Zeilen (erste + letzte) und alle URLsEine RegEx später:TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen5
  • 6.
    Unsere Regex: \t*Eskann ein Tab da stehenSlow Motion! | #1TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen6<url> <loc>http://blogs-optimieren.de/</loc> <lastmod>2011-03-10T09:32:43+00:00</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> …
  • 7.
    Unsere Regex: <.*?>(?!http://).*</.*?>\rIrgendwassteht zwischen ‚<‘ und ‚>‘danach kommt was (aber nicht http://)und ein schließender Tag gefolgt von einem ZeilenumbruchSlow Motion | #2TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen7<url> <loc>http://blogs-optimieren.de/</loc> <lastmod>2011-03-10T09:32:43+00:00</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> …
  • 8.
    Unsere Regex: </?loc><loc>oder </loc>Slow Motion | #3TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen8<url> <loc>http://blogs-optimieren.de/</loc> </url> <url> …
  • 9.
    </?.*> ?\r*Ein öffnenderoder schließender TagGefolgt von einem Leerzeichen (oder auch nicht)Gefolgt von einem Zeilenumbruch (oder auch nicht)Slow Motion | #4TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen9<url> http://blogs-optimieren.de/</url> <url> …
  • 10.
    #1 (#2 |#3 | #4)\t* ( <.*?>(?!http://).*</.*?>\r | </?loc> | </?.*> ?\r* )Die Pipe ‚|‘ steht für ein oderDie Klammern sorgen für die ReihenfolgeSlow Motion | DONETRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen10http://blogs-optimieren.de/
  • 11.
    Agenda11TRG | SEOCAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
  • 12.
    UraltGrundlagen 1956 ausder MedizinSuchen und ErsetzenWildcards on SteroidsAlles, was durch ein Muster zu beschreiben ist, kann mit RegEx ausgelesen und ersetzt werdenGefühlte 1.000 Dialekte(mit PREG/PCRE kann man aber eigentlich nicht falsch liegen)Was ist RegS?ExTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen12
  • 13.
    Search andReplaceDaten umformatierenListenzu TabellenURL-/HTML-/Text- Muster erkennen und ersetzenSearch andDestroyMüllabfuhrSearch…Validierung von EingabenNutzernamenPasswörter (X-Zeichen nach Schema XYZ)TelefonnummernMail-AdressenURLsNever trust a userAnwendungsfälleTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen13
  • 14.
    Agenda14TRG | SEOCAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
  • 15.
    Basics | BrauchbareHilfeTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen15Ganz groß: http://www.slideshare.net/andreizm/andreis-regex-clinicHTML und RegEx werden niemals echte Freunde: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
  • 16.
    Vernünftiger Text-EditorTextwrangler (Mac)Notepad++(Windows)VIM (Unix/Terminal)Validatoren hilfreich für EinsteigerEinfach mal Googlen… Validator +RegexReggy (http://reggyapp.com/) OSX-ToolCheatsheetshttp://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/Gibtaber nocheinigeandereTerminal…Basics | ToolsTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen16
  • 17.
    Zeichen gruppieren[a-z] ->[a-h] geht natürlich auch[A-Z] -> [A-H] geht natürlich auch[0-9] -> [1-5] geht natürlich auch[ ;.,:!?]Shortcuts für Zeichenklassen\s -> whitespaces\S -> kein Whitespace\d -> 0-9\D -> kein 0-9\w -> Wort\W -> kein WortBasics | ZeichenklassenTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen17
  • 18.
    [a-z] = 1[]+= >1[]? = 1 oder 0[]* = 0, >1 []{3} = 3[]{3,5} = 3, 4, 5+ und * lassen sich mit einem ? Von gierig auf genügsam schaltenBasics | QuantorenTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen18
  • 19.
    ^ -> Zeilenanfang$-> Zeilenende| -> oder\ -> Befehlszeichen die Sonderbedeutung nehmenAnker und AnderesTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen19
  • 20.
    Agenda20TRG | SEOCAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen
  • 21.
    Leerzeilen löschen\r+ durch\r Leerzeilen löschenDatum umformatieren01.02.1900 durch 1900-02-01(\d{2}).(\d{2}).(\d{4}) durch \3-\2-\1HTML Tags loswerden<.+?> oder <[^>]+> je nach EnginePrinzipiell ist HTML nicht durch RegEx brauchbar zu parsenBestimmte Dateien aus der Liste löschen.*\.(jpg|jpeg|css|js)Grep „Google|Slurp|Bing“Was braucht man sonst andauernd?TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen21
  • 22.
    Prinzipiell alles filterbarReferrerBrowsertypen…KeywordsGoogleAnalyticsTRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen22
  • 23.
    (bh\s|\sbh)|(har[dt]|soft)[-\s]?core|(male|fem)[-\s]?(joy|dom)|(oben|unten)[\s ]+ohne|(popo|^po$)|(tabu|hemmungs)los|(three|four|\d)some|(ver|dreck)sau|(wank|red|tim|porn)[\s-]?tube|(x|call)(video|girl)|[aäe]+rsch|[kc]lit|[sf]uck|[v]i(chs|x)|[vf][oeö]+geln|[vf]otze|\d+yo|abuse|ad[au]lt|am+a+t+[öeu]+r|anal(?![yblgn])|ba(nged|be|rely)|bangb|be(haart|sam)|bl(ow[- ]?jo[bp]|asen)|bo+(ndage|b)|bordell|br[üue]+st|breast|buk+ake|bum?s(en|ig)|butt|cam(s|el[-\s]?toe)|catfight|chick|cleavage|closeup|creampie|cu(nt|m|ckold)|de+pthroat|dil+do|dog+(y|ie)|doktor[-]?spiele|domina|dp|dreier|eb+o+n+y|eichel|eja[kc]ul|entjungfer|ere[kc]t|erot[hi]+([gck]|sch)|f[au]ndorado|facesitting|facial|fetisc?h|feucht|fi(e?ken|ck)|finger(ing|n)|fisti|fkk|g[\s-]?(punkt|spot)|gangbang|geil|geschlechts(verkehr|akt)|girls?(friend|s[-\s]?gone[-\s]?wild)|ggw|gloryhole|grann(y|ies)|h[ea]nt[ae][iy]|hairy|hardcore|hure|in[zc](est|ucht)|interracial|intim|joyclub|kam+a[zs]utra|[kc]oitus|la[bp]+danc|ladyboy|latex|latina|le(s[bp]|cken)|livechat|lo(lita|vetoy)|luder|m[öoe]+p?se|mast[eurbi]+(ren|ate|tion)|mature|milf|muschi|n[iy](lon|mph[oe])|nac?k(t|ig|ed)|naughty|nip+[el]{2,}|nud(e|is?t)|nutte|onanieren|org?(asm|y|al)|p[0o]rn|p[äae]+d(oph|[äae]+rast)|p[ro]+n|pant(y|ies)|pe(nis|rvers|t+ing)|pee|penetrat|penthouse|pi(ss|nkel)|pim+(el|pern)|playboy|pop+en|potenz|p[r0o]+n|privat|prostitu|puff|puss[iy]|rap(ing|ed)|ras(iert|ur|ieren)|rimjob|rosette|sch(lampe|w[aä]nz)|schwul|seksfilmpjes|selbstbefr|sex|skirt|sklav(in|e)|slip|span+(er|ked)|sperma|squirt|str(i[pb]|a[bp]s)|superheroines|swinger|tanga|teen(s|i|y|pics|cam)|tit+[yies]|trans|vagina|vibrator|vorhaut|voy[euoöä]+r|wetRegEx? RegSex!TRG | SEO CAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen23
  • 24.
    Agenda24TRG | SEOCAMPIXX BERLIN 2011| Vortrag von: Johan Hülsen