0

我可以使用一些帮助来简化以下包含正则表达式语句的代码。我只是试图从包含在较大文本中的所有可能的子字符串中获取整数,然后将这些整数推送到数组中。我知道我不应该使用拆分,但我忘记了如何使用正则表达式。

    preg_match_all('/bar:foo\(?[0-9]*\);/', $in , $tag);
    for ($i = 0; $i < count($tag[0]); $i++) {
        $parts = explode("(", $tag[0][$i]);           
        $parts2 = explode(")", $parts[1]);
        array_push($myArr, $parts2[0]);
    }
4

2 回答 2

3

实际上,您可能不需要使用preg_split,但您已经可以通过修改当前模式来改进它:

$numbers = preg_match_all('/bar:foo\(?([0-9]*)\);/', $in , $matches) 
           ? array_map('intval', $matches[1])
           : array();
于 2012-04-17T12:25:58.053 回答
1
preg_match_all('/bar:foo\(?([0-9]*)\);/', $in , $tags);
print_r($tags);
于 2012-04-17T12:25:31.120 回答