{"id":38,"date":"2005-06-20T08:46:00","date_gmt":"2005-06-20T06:46:00","guid":{"rendered":"http:\/\/www.forksoft.de\/blog\/2005\/06\/20\/regex-regularer-ausdruck\/"},"modified":"2007-04-26T14:00:25","modified_gmt":"2007-04-26T12:00:25","slug":"regex-regularer-ausdruck","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2005\/06\/20\/regex-regularer-ausdruck\/","title":{"rendered":"RegEx  Regul&#228;rer Ausdruck"},"content":{"rendered":"<p>Laut Theorie kann man mit regul&#228;ren Ausdr&#252;cken bekanntlich keine beliebig tiefen Klammerstrukturen analysieren. Mit einem modernen RegEx-Parser geht das trotzdem:<\/p>\n<p>\\(<br \/>\n\u00a0\u00a0\u00a0 (?><br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [^()]+<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0 \\( (?&lt;number&gt;)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0 \\) (?&lt;-number&gt;)<br \/>\n\u00a0\u00a0\u00a0 )*<br \/>\n\u00a0\u00a0\u00a0 (?(number)(?!))<br \/>\n\\)<\/p>\n<p>Das liefert zumindest die gr&#246;&#223;ten balancierten Klammerausdr&#252;cke in einem Text.<\/p>\n<p>Also aus &#8220;blabla () + (3*(5+3)*4) blah&#8221; werden die beiden Matches &#8220;()&#8221; und &#8220;(3*(5+3)*4)&#8221; gefunden.<\/p>\n<p>Die Folge ist, dass ein RegEx-Parser echt m&#228;chtiger ist als ein regul&#228;rer Ausdruck.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laut Theorie kann man mit regul&#228;ren Ausdr&#252;cken bekanntlich keine beliebig tiefen Klammerstrukturen analysieren. Mit einem modernen RegEx-Parser geht das trotzdem: \\( \u00a0\u00a0\u00a0 (?> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [^()]+ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0 \\( (?&lt;number&gt;) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0 \\) (?&lt;-number&gt;) \u00a0\u00a0\u00a0 )* \u00a0\u00a0\u00a0 (?(number)(?!)) \\) Das liefert zumindest die gr&#246;&#223;ten balancierten Klammerausdr&#252;cke in einem Text. Also aus &#8220;blabla () + (3*(5+3)*4) blah&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[62],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/38"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":0,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}