我有String。假设
$line = "stringA stringB 4-stringC stringD stringF 12345 stringG 678249 stringH ";
如果我需要的唯一匹配项是:
"12345"
我尝试编码:
if (preg_match('/ ([0-9,]+)/', $line, $matches) === 1 && strlen($matches[0]) > 3 && strlen($matches[1]) > 3) {
echo var_dump($matches[0]);
}
但是,结果是:
array(2) {
[0]=>
string(2) " 4"
[1]=>
string(1) "4"
}
代替12345
。
答案 0 :(得分:2)
您可以使用单词边界\b
,并使用量词{4,}
匹配4个或更多数字
\b\d{4,}\b
例如
$line = "string string 4-string string string 12345 string 678249 string ";
if (preg_match('/\b\d{4,}\b/', $line, $matches)) {
var_dump($matches);
}
输出
array(1) {
[0]=>
string(5) "12345"
}