Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Regulärer Ausdruck gesucht

<pre><br>&lt;?php<br>$html = &quot;&lt;b&gt;bold text&lt;/b&gt;&lt;a href=howdy.html&gt;click me&lt;/a&gt;CMS_CONTAINER[1][erster Container]CMS_CONTAINER[2][zweiter Container]&quot;;<br><br>preg_match_all (&quot;/(&lt;([\w]+)[^&gt;]*&gt;)(.*)(&lt;\/\\2&gt;)/&quot;, $html, $matches, PREG_SET_ORDER);<br><br>foreach ($matches as $key =&gt; $value) {<br> echo &quot;matched: &quot;.$matches[$key][0].&quot;\n&quot;;<br> echo &quot;part 1: &quot;.$matches[$key][1].&quot;\n&quot;;<br> echo &quot;part 2: &quot;.$matches[$key][3].&quot;\n&quot;;<br> echo &quot;part 3: &quot;.$matches[$key][4].&quot;\n\n&quot;;<br>}<br>/*<br>AUSGABE:<br>matched: &lt;b&gt;bold text&lt;/b&gt;<br>part 1: &lt;b&gt;<br>part 2: bold text<br>part 3: &lt;/b&gt;<br><br>matched: &lt;a href=howdy.html&gt;click me&lt;/a&gt;<br>part 1: &lt;a href=howdy.html&gt;<br>part 2: click me<br>part 3: &lt;/a&gt;<br><br>ich brauche:<br>matched: CMS_CONTAINER[1][erster Container]<br>part 1: 1<br>part 2: erster Container<br><br>matched: CMS_CONTAINER[2][zweiter Container]<br>part 1: 2<br>part 2: zweiter Container<br><br>Name sollte auch weggelassen werden k&ouml;nnen und dann ist der 2. Part einfach leer :-)<br>*/<br>?&gt;<br></pre><br><br>Kann jemand diesen Ausdruck bauen?

Hier gehts zum Orginal Eintrag "Regulärer Ausdruck gesucht" im Forum

Antworten

Hi,<br><br>so wie es aussieht willst Du die $html zerlegen. Mit preg_match_all durchsuchst Du aber die Variable nur nach einem Ausdruck. R&uuml;ckgabewerte sind 0 = FALSE f&uuml;r nicht vorhanden oder 1=TRUE f&uuml;r vorhanden. Versuche es mit (preg_)split - teilt die Zeichenfolgen oder mit ereg durchsucht auch nach regul&auml;ren Ausdr&uuml;cken gibt aber die Fundstellen zur&uuml;ck.<br><br>Cu<br>Devi


2.

nein, ich m&ouml;chte nichts zerlegen. Ich m&ouml;chte wie oben beschrieben bei $matches[$key][0] und $matches[$key][1] einfach ein anderes Ergebnis bekommen, da ich nach was anderes suchen m&ouml;chte. Nicht nach HTML Tags sondern nach dem CMS_CONTAINER


3.

Hi,<br><br>ich verstehe deinen Ansatz f&uuml;r den regul&auml;ren Ausdruck nicht wirklich.<br>/CMS_CONTAINER\[(\d*)\]\[([^\]]*)\]/iUs<br>w&auml;re ein Ansatz.<br><br>Olli<br>http://www.phptutorials.de


4.

Die L&ouml;sung f&uuml;r mich ist:<br><br>preg_match_all (&quot;/CMS_CONTAINER\[(\d+)\](\[([^\]]+)\])?/&quot;, $db-&gt;f('code'), $match, PREG_SET_ORDER);


Hier gehts zum Orginal Eintrag "Regulärer Ausdruck gesucht" im Forum
 
phpforum.de | Impressum