PHP Regexp:忽略已定义子字符串之前的所有内容


PHP Regexp: ignoring everything before a defined substring

我正在尝试解析一个网页。基本上它被存储在一个字符串中,看起来像这样:

"[HTML CODE ...]world:[HTML CODE ...]my_number[REST OF HTML_CODE ...]"

当然"world:"answers"MY_NUMBER"是html代码的一部分,但是我想忽略第一次出现"world:"之前的一切。我需要的是第一个数字,出现在第一次出现"world:"之后,记住,一堆html代码将在这些之间。我可以子字符串的html代码,但我想做这一切只是通过使用一个单一的正则表达式,如果可能的话。

这是我尝试匹配的正则表达式:

'/(?<=world:)'D+?[0-9]+/'

但是这会返回"world:"和我的数字之间的所有html内容。

谢谢!

我想你就差那么一点了。我可以在你提供的字符串上使用这个

$subject = "[HTML CODE ...]world:[HTML CODE ...]3334[REST OF HTML_CODE ...]";
$pattern = "/world:'D+?(?<my_number>[0-9]+)/";
$matches = array();
$result =  preg_match_all($pattern, $subject, &$matches);
print_r($matches);

结果:

Array
(
    [0] => Array
        (
            [0] => world:[HTML CODE ...]3334
        )
    [my_number] => Array
        (
            [0] => 3334
        )
    [1] => Array
        (
            [0] => 3334
        )
)