<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Nicht-Reguläre Ausdrücke]]></title><description><![CDATA[<p>Hallo,</p>
<p>Folgendes Problem: für einen Ausdruck, der aus Klammern ( ) und anderen Zeichen besteht, soll zu einer gegebenen öffnenden Klammer &quot;(&quot; die *zugehörige* schließende Klammer &quot;)&quot; gefunden werden.</p>
<p>Beispiel: Zur Eingabe (abc(de)(f)) soll der Inhalt des äußersten Klammerpaares, also abc(de)(f) ausgegeben werden.</p>
<p>Problem: Mit puren regulären Ausdrücken scheint das nicht zu gehen. Schließlich ist die Sprache aller wohlgeformten Klammerausdrücke nicht regulär, sondern kontextfrei. Gibt es in einer der in Frage kommenden Sprachen awk/sed/bash/python/ruby (notfalls auch C/C++) eine elegante Methode oder gar eingebaute Funktion zum Erkennen zusammengehöriger Klammern ? Oder zum automatischen Extrahieren des Klammerinhalts, selbst wenn weitere Klammerebenen dazwischenliegen, wie im Beispiel ?</p>
<p>[Natürlich läßt sich das Problem in jeder Sprache mittels eines Zählers lösen, der bei &quot;(&quot; eins hochzählt und bei &quot;)&quot; eins herunterzählt; bei Erreichen der Null ist die Klammer gefunden. Aber ich frage mich, ob es nicht noch eine einfachere Möglichkeit gibt, die mit &quot;Bordmitteln&quot; auskommt, ohne den beschriebenen Zählmechanismus implementieren zu müssen]</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157459/nicht-reguläre-ausdrücke</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 13:13:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157459.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Aug 2006 20:58:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nicht-Reguläre Ausdrücke on Fri, 25 Aug 2006 20:58:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Folgendes Problem: für einen Ausdruck, der aus Klammern ( ) und anderen Zeichen besteht, soll zu einer gegebenen öffnenden Klammer &quot;(&quot; die *zugehörige* schließende Klammer &quot;)&quot; gefunden werden.</p>
<p>Beispiel: Zur Eingabe (abc(de)(f)) soll der Inhalt des äußersten Klammerpaares, also abc(de)(f) ausgegeben werden.</p>
<p>Problem: Mit puren regulären Ausdrücken scheint das nicht zu gehen. Schließlich ist die Sprache aller wohlgeformten Klammerausdrücke nicht regulär, sondern kontextfrei. Gibt es in einer der in Frage kommenden Sprachen awk/sed/bash/python/ruby (notfalls auch C/C++) eine elegante Methode oder gar eingebaute Funktion zum Erkennen zusammengehöriger Klammern ? Oder zum automatischen Extrahieren des Klammerinhalts, selbst wenn weitere Klammerebenen dazwischenliegen, wie im Beispiel ?</p>
<p>[Natürlich läßt sich das Problem in jeder Sprache mittels eines Zählers lösen, der bei &quot;(&quot; eins hochzählt und bei &quot;)&quot; eins herunterzählt; bei Erreichen der Null ist die Klammer gefunden. Aber ich frage mich, ob es nicht noch eine einfachere Möglichkeit gibt, die mit &quot;Bordmitteln&quot; auskommt, ohne den beschriebenen Zählmechanismus implementieren zu müssen]</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124722</guid><dc:creator><![CDATA[Hobbyprogrammierer]]></dc:creator><pubDate>Fri, 25 Aug 2006 20:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Nicht-Reguläre Ausdrücke on Fri, 25 Aug 2006 21:53:26 GMT]]></title><description><![CDATA[<p>du kannst ein regexp machen welches eine start klammer und eine end klammer sucht, aber keine andere klammer beinhalten darf, mit funktion wie preg_replace_callback kannst du dann rekrusiv dein string durchgehen und das gefundene löschen und noch mal suchen lassen usw.</p>
<p>wenn du das gelöschte anderweitig sammelst hast du dein ergebniss</p>
<p>ist wahrscheinich langsamer als deine methode mit den zählen und selbst für dich in einer woche nicht mehr verständlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124740</guid><dc:creator><![CDATA[Gerard]]></dc:creator><pubDate>Fri, 25 Aug 2006 21:53:26 GMT</pubDate></item></channel></rss>