用正则表达式提取ID(值)?

时间:2014-11-14 07:05:11

标签: php regex

我有一个文字

[wow id="44"] bla bla bla [wow id="99"] bla bla bla [wow id="100"] bla

如何以智能方式获取值44, 99, and 100?是正则表达式"走的路'" ?

4 个答案:

答案 0 :(得分:3)

使用\K放弃先前匹配的字符,以便在最终输出中打印。

\[wow id="\K[^"]*(?="])

代码:

preg_match_all('~\[wow id="\K[^"]*(?="])~', $str, $match);

使用捕获组。

\[wow id="([^"]*)"]

答案 1 :(得分:2)

尝试使用preg_match_all()

$str = '[wow id="44"] bla bla bla [wow id="99"] bla bla bla [wow id="100"] bla';
preg_match_all('/[1-9][0-9]*/', $str, $m);
print_r($m);//Array ( [0] => Array ( [0] => 44 [1] => 99 [2] => 100 ) ) 

更多信息: - Regex pattern for numeric values

答案 2 :(得分:1)

这可能对您有所帮助

preg_match_all("/\b(\d{6,20})\b/", $input_lines, $output_array);
结果是

Here

答案 3 :(得分:1)

<强> PHP:

 $re = "/\\[[\\w\\s]*id=\"(\\d+)/m";
    $str = " down vote favorite\n    \n\nI have a text\nid=\"44\"\n[wow id=\"44\"] bla bla bla [wow id=\"99\"] bla bla bla [wow id=\"100\"] bla";

    preg_match_all($re, $str, $matches);

See live