【发布时间】:2018-11-09 06:25:32
【问题描述】:
enter image description here我已经尝试了许多 php 函数,如 strpos()、preg_match(),但它们都不起作用。我有一个字符串
我只想提取四位数字,即 1234。
<?php
$texxt="abcd1245 784563 1234 98756 kfg7456178";
$results=array();
preg_match('/[0-9]{4}/', $texxt, $results);
print_r($results);
?>
但上面的代码返回 1245 而不是 1234。如果我删除 abcd1245,则输出为 7845。实际的字符串非常大,它包含 200 多个数字,如上。我只想要确切的 4 位数字。有没有办法解决这个问题?
【问题讨论】:
-
不确定您为什么编辑您的尝试,因为help center 声明您应该提供您的尝试。
-
是的,它起作用了,你能解释一下那些 b 是什么吗?
-
我没有故意删除代码,这是一个错误
-
\b是一个单词边界。它匹配单词的“边缘”。现在,这仍将匹配非字母数字字符(例如-)。所以它仍然会匹配字符串-1234。如果这不是您想要的,那么您可以使用\s代替\b。 -
在我的实际字符串中有带和不带空格的 4 位数字,例如“1234”和“1234”,正则表达式在这种情况下也可以工作吗?