Tom: Regex: Alle Zahlen aus String filtern

Beitrag lesen

Hello,

Ist mein Vorhaben uberhaupt realistisch mit Regex zu lösen?

Bestimmt. Und so schwer ist es auch mMn auch nicht.
Deine Anforderungen sehen sehr nach "Wortgrenze" aus

Treffer vorhanden

Array
(
    [0] => Array
        (
            [0] => 555
            [1] => 22.9877
            [2] => 189,4348
            [3] => 2001
            [4] => 8
            [5] => 0,0044889
            [6] => 00.0044889
            [7] => 12.388.444,24
            [8] => 0
            [9] => 44
            [10] => 55
        )

)

So als erster Ansatz:

<?php   ### zahlen_filtern.php ###

$str = 'id=xyz><d difopfwf9 <b>555</b> kewffoop ew43534 22.9877 fd<sdr ^ 4ffkp <p>reew 33p efjfi     89,4348 xx</b>2001<b>xx<html>r fei/jefw 8)( ewfd9e730ß 0,0044889  00.0044889 fdl 12.388.444,24 r4rßß 0 <b>44-55</b> rkfr0<tt>dfrfwrigp';

$pattern = '~\b[0-9,.]+\b~';

echo (preg_match_all ( $pattern, $str , $_result))?'Treffer vorhanden':'keine Treffer';

echo "<pre>\r\n";
    echo htmlspecialchars(print_r($_result,1));
    echo "</pre>\r\n";
?>

Die Zusatzbedingugnen kannst Du nun selber einbauen, wolltest Du ja auch, oder? ;-)

Wie man aber in einem kaputten HTML-String feststellen kann, ob man sich innerhalb oder außerhalb eines inhaltsbewehrten Elementes befindet, dazu fällt mir nicht wirklich etwas ein.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de