{"id":71,"date":"2001-01-02T14:54:45","date_gmt":"2001-01-02T12:54:45","guid":{"rendered":"http:\/\/www.hermione.de\/blog\/?p=71"},"modified":"2009-06-30T14:00:49","modified_gmt":"2009-06-30T12:00:49","slug":"regulaere-ausdruecke","status":"publish","type":"post","link":"http:\/\/blog.hermione.de\/?p=71","title":{"rendered":"regulaere Ausdruecke"},"content":{"rendered":"<h4>if ($irgendwas =~\/&#8230;\/){&#8230;}<\/h4>\n<table class=\"rem\">\n<tr class=\"brem\">\n<th>+ = {1,}<br \/>\n? = {0,1}<br \/>\n* = {0,}<\/th>\n<td>mindestens eins<br \/>\nhoechtens eins<br \/>\nbel. viele, auch keins<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>^<br \/>\n$<\/th>\n<td>Suche am Anfang des Audrucks<br \/>\nSuche am Ende des Audrucks<\/td>\n<\/tr>\n<tr>\n<td><em><nobr>$irgendwas = &#8222;christine&#8220;;<\/nobr><br \/>\nif ($irgendwas =~\/ris\/)<br \/>\nif ($irgendwas =~\/ine$\/)<br \/>\nif ($irgendwas =~\/^ris\/)<\/em><\/td>\n<td>Auswertung des Ausdrucks ergibt:<br \/>\ntrue, d.h. wird gefunden<br \/>\ntrue, d.h. wird gefunden<br \/>\nfalse, d.h. wird nicht gefunden<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th>.<br \/>\n\/.*\/<\/th>\n<td>irgendein beliebiges Zeichen<br \/>\nbeliebig oft ein bel. Zeichen (auch null-mal)<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>\/^.*$\/<br \/>\n\/^$\/<br \/>\n\/^\\s*$\/<\/th>\n<td>irgendetwas, auch Leerzeile<br \/>\nLeerzeile<br \/>\nLeerzeile<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th>\\d = [0-9]<br \/>\n\\d\\d = \\d{2}<br \/>\n\\d{0,2}<\/th>\n<td>eine Ziffer<br \/>\nzwei Ziffern hintereinander<br \/>\nhoechstens zwei, aber auch keine Ziffer<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>\\s<br \/>\n\\S<\/th>\n<td>whitespaces<br \/>\nnicht-whitespaces<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th>[aeiou]+<br \/>\n[^aeiou]+<\/th>\n<td>Vokale<br \/>\nNicht-Vokale<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>[a-kw-z]<br \/>\n[0-9]<\/th>\n<td>Bereiche<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th>[&#8222;_,:]<br \/>\n[\\.\\-\\\\]<\/th>\n<td>ohne Sonderbedeutung<br \/>\nEscape bei Zeichen mit Sonderbedeutung<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\"><em>$irgendwas = &#8222;<bla><blub>Hallo<\/blub><\/bla>&#8222;;<br \/>\nif ($irgendwas =~\/&lt; .*?&gt;\/) # findet &lt;bla&gt;<br \/>\nif ($irgendwas =~\/&lt; [^&gt;]+&gt;\/) # findet ebenfalls &lt;bla&gt;<br \/>\n<\/em><\/td>\n<\/tr>\n<\/table>\n<p><!--more--><\/p>\n<h4>Klammerungen in regulaeren Ausdruecken<\/h4>\n<p>Die Nummerierung der Dollars entspricht der Reihenfolge der vorderen Klammern.<\/p>\n<p><em>$irgendwas = &#8222;From: blub@bla.de&#8220;;<br \/>\nif ($irgendwas =~\/^(\\S+).\\s*(.*)$\/) {<br \/>\n$headerName = $1;<br \/>\n$headerContent = $2;<br \/>\n}<\/em><\/p>\n<table class=\"rem\">\n<tr class=\"brem\">\n<th>\/^(bla)*blub$\/<\/th>\n<td>findet blub ($1=bla)<br \/>\nnicht blblub<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>(bla.)*blub<\/th>\n<td>findet blaxlbub ($1=blax)<br \/>\nfindet blaublaublub ($1=blau)<br \/>\nnicht blablub<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th>bla.*blub<\/th>\n<td>findet blablub<br \/>\nfindet blablablub<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th>(bl(au)*g)+blub<\/th>\n<td>findet blaugblub ($1=blaug, $2=au)<br \/>\nfindet blgblub<br \/>\nnicht blagblub<br \/>\nnicht blauaublub<\/td>\n<\/tr>\n<\/table>\n<h4>Bsp: <em>mary had a lamb a cow and a sheep<\/em><\/h4>\n<table class=\"rem\">\n<tr class=\"brem\">\n<th>if (\/mary\/i) {&#8230;}<\/th>\n<td>i: caseinsensitive &#8211; Gross\/Kleinschreibung egal<\/td>\n<\/tr>\n<tr class=\"arem\">\n<th colspan=\"2\">while (\/a(.)\/g) {print &#8222;$1\\n&#8220;;}<\/th>\n<\/tr>\n<tr class=\"arem\">\n<th><\/th>\n<td>g: global &#8211; Interpreter merkt sich die Stelle<br \/>\nbei mehrfacher Ausfuehrung wird jeweils das naechste a gefunden<\/td>\n<\/tr>\n<tr class=\"brem\">\n<th colspan=\"2\">while (\/\\sa\\s(\\S+)\/g){print &#8222;$1\\n&#8220;;}<\/th>\n<\/tr>\n<tr class=\"brem\">\n<th><\/th>\n<td>findet &#8222;lamb&#8220;, &#8222;cow&#8220;, &#8222;sheep&#8220;<\/td>\n<\/tr>\n<\/table>\n<h4>Suchen und Ersetzen: $blub =~s\/old\/new\/<\/h4>\n<h4>Links<\/h4>\n<ul>\n<li><a href=\"http:\/\/www.hidemail.de\/blog\/hash-of-aus-arrays.shtml\">Hash bestehend aus Arrays<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>if ($irgendwas =~\/&#8230;\/){&#8230;} + = {1,} ? = {0,1} * = {0,} mindestens eins hoechtens eins bel. viele, auch keins ^ $ Suche am Anfang des Audrucks Suche am Ende des Audrucks $irgendwas = &#8222;christine&#8220;; if ($irgendwas =~\/ris\/) if ($irgendwas =~\/ine$\/) if ($irgendwas =~\/^ris\/) Auswertung des Ausdrucks ergibt: true, d.h. wird gefunden true, d.h. wird [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts\/71"}],"collection":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=71"}],"version-history":[{"count":0,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=\/wp\/v2\/posts\/71\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.hermione.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}