如何获取包含其他数字字符串的特定数字字符串?

时间:2019-11-20 09:48:52

标签: php regex laravel

我有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

1 个答案:

答案 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"
}

Php demo