tag:forum.selfhtml.org,2005:/selfregExp Hilfe – SELFHTML-Forum2011-03-10T15:38:31Zhttps://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498470#m1498470Helge B.2011-03-09T12:57:52Z2011-03-09T12:57:52ZregExp Hilfe<p>Ich brauche Hilfe bei einer Suche mit reguläremausdruck:</p>
<pre><code class="block language-php">
$test = '<span class="token php language-php"><span class="token delimiter important"><?</span>xml<span class="token operator">-</span>stylesheet type<span class="token operator">=</span><span class="token string double-quoted-string">"text/xsl"</span> href<span class="token operator">=</span><span class="token string double-quoted-string">"diesunddas"</span> <span class="token delimiter important">?></span></span>';
$suchmuster = "<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>\?xml-stylesheet.+?\</span><span class="token punctuation">></span></span>";
echo preg_match($suchmuster, $test);
</code></pre>
<p>... gibt immer 0. Wie kann ich den String $test per regexp suchen?</p>
<p>Helge</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498472#m1498472ChrisB2011-03-09T13:04:26Z2011-03-09T13:04:26ZregExp Hilfe<p>Hi,</p>
<blockquote>
<pre><code class="block language-php"></code></pre>
</blockquote>
<p>$test = '<?xml-stylesheet type="text/xsl" href="diesunddas" ?>';</p>
<blockquote>
<p>$suchmuster = "<?xml-stylesheet.+?>";<br>
echo preg_match($suchmuster, $test);</p>
</blockquote>
<pre><code class="block">
> ... gibt immer 0.
Nicht nur das, es gibt auch eine Warnmeldung wegen des syntaktisch fehlerhaften regulären Ausdrucks.
Stelle bitte das error\_reporting auf E\_ALL und display\_errors auf 1.
MfG ChrisB
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
</code></pre>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498471#m1498471suitspam.2011@rebell.athttp://rebell.at/2011-03-09T13:51:18Z2011-03-09T13:51:18ZXML-Parser beim Verarbeiten von XML<p>Auf die gefahr hin, dass ich wie eine alte zerkratzte Schallplatet klinge:</p>
<p>Wenn du offensichtlich ein XML verarbeiten willst, warum nimmst du dann keinen XML-Parser?</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498473#m1498473Helge B.2011-03-09T13:09:46Z2011-03-09T13:09:46ZregExp Hilfe<blockquote>
<p>Nicht nur das, es gibt auch eine Warnmeldung wegen des syntaktisch fehlerhaften regulären Ausdrucks.</p>
</blockquote>
<p>Wenn's richtig wäre, bräuchte ich ja hier nicht posten.</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498480#m1498480dave2011-03-09T13:22:33Z2011-03-09T13:22:33ZregExp Hilfe<p>Hi,</p>
<p>und welche Fehlermeldung bekommst du dann?</p>
<p>~dave</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498474#m1498474Texter mit x2011-03-09T13:26:37Z2011-03-09T13:26:37ZregExp Hilfe<blockquote>
<blockquote>
<p>Nicht nur das, es gibt auch eine Warnmeldung wegen des syntaktisch fehlerhaften regulären Ausdrucks.<br>
Wenn's richtig wäre, bräuchte ich ja hier nicht posten.</p>
</blockquote>
</blockquote>
<p>Wenn Dich niemand darauf hinweisen müßte, Dir Warn- und Fehlermeldung ausgeben zu lassen, bräuchtest Du hier vielleicht auch nicht posten.</p>
<p>Anhand der Warnmeldung könntest Du vielleicht Schlüsse ziehen, die dich der Lösung näher bringen. Zumindest könntest Du uns die Warnmeldung mitteilen.</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498475#m1498475Helge B.2011-03-09T13:36:17Z2011-03-09T13:36:17ZregExp Hilfe<blockquote>
<p>Anhand der Warnmeldung könntest Du vielleicht Schlüsse ziehen, die dich der Lösung näher bringen. Zumindest könntest Du uns die Warnmeldung mitteilen.</p>
</blockquote>
<p>Habt ja recht:<br>
Warning: preg_match(): No ending matching delimiter '>' found in ...</p>
<p>Mit ~~~php
$suchmuster = "(<?xml-stylesheet.+?>)";<br>
echo preg_match($suchmuster, $test, $match);<br>
print_r($match);</p>
<pre><code class="block language-bekomme">
</code></pre>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498479#m1498479Helge B.2011-03-09T13:42:19Z2011-03-09T13:42:19ZregExp Hilfe<p>Mit<br>
$suchmuster = "(<?xml-stylesheet.+?)";<br>
sieht's schon gut aus. Allerdings will ich auch das letzte > noch haben.</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498476#m1498476Texter mit x2011-03-09T14:34:17Z2011-03-09T14:34:17ZregExp Hilfe<blockquote>
<p>Warning: preg_match(): No ending matching delimiter '>' found in ...</p>
</blockquote>
<p><a href="http://de.php.net/manual/de/function.preg-match.php" rel="nofollow noopener noreferrer">http://de.php.net/manual/de/function.preg-match.php</a><br>
Schau Dir mal die Beispiele innerhalb der Parameter-Liste an. Die Delimiter sind dort die beiden "/" am Anfang und am Ende.</p>
<blockquote>
<p><code class="language-php"><span class="token variable">$suchmuster</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"(\<\?xml\-stylesheet.+\?\>)"</span><span class="token punctuation">;</span></code></p>
</blockquote>
<p>Was willst Du denn suchen?<br>
<?xml-stylesheet, gefolgt von etwas möglichst kutzem was kein Zeilenumbruch ist, gefolgt von ?></p>
<p>Was muß man maskieren?<br>
<a href="http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck#Regul.C3.A4re_Ausdr.C3.BCcke_in_der_Praxis" rel="nofollow noopener noreferrer">http://de.wikipedia.org/wiki/Regulärer_Ausdruck#Regul.C3.A4re_Ausdr.C3.BCcke_in_der_Praxis</a></p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498477#m1498477Helge B.2011-03-10T10:55:10Z2011-03-10T10:55:10ZregExp Hilfe<p><code class="language-php"><span class="token variable">$suchmuster</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"(.\?xml-stylesheet.+\?.)"</span><span class="token punctuation">;</span></code><br>
Läuft, Danke</p>
https://forum.selfhtml.org/self/2011/mar/9/regexp-hilfe/1498478#m1498478Texter mit x2011-03-10T15:38:31Z2011-03-10T15:38:31ZregExp Hilfe<blockquote>
<p><code class="language-php"><span class="token variable">$suchmuster</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"(.\?xml-stylesheet.+\?.)"</span><span class="token punctuation">;</span></code><br>
Läuft, Danke</p>
</blockquote>
<p>Was auch immer.</p>
<p>Erinnert mich an das hier:<br>
Informatiker jagen Elefanten, indem sie den folgenden Algorithmus A ausführen:<br>
1. Gehe nach Afrika<br>
2. Beginne am Kap der guten Hoffnung<br>
3. Durchkreuze Afrika von Süden nach Norden bidirektional in Ost-West-Richtung<br>
4. Für jedes Durchkreuzen tue:<br>
4a) Fange jedes Tier, das Du siehst<br>
4b) Vergleiche jedes gefangene Tier mit einem als Elefant bekannten Tier<br>
4c) Halte an bei Übereinstimmung</p>
<p>Wobei das Suchmuster der Falle in Punkt 4a des Informatikers entspricht und nicht etwa Punkt 4b.</p>