我有一个文字
[wow id="44"] bla bla bla [wow id="99"] bla bla bla [wow id="100"] bla
如何以智能方式获取值44, 99, and 100
?是正则表达式"走的路'" ?
答案 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)
答案 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);