繁体   English   中英

PHP从包含4位,5位,6位数字的字符串中仅提取4位数字

[英]PHP extract only 4digit numbers from string containing 4digit,5digit,6digit numbers

在这里输入图片描述,我尝试了许多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位数字。 有什么办法解决这个问题?

您需要在图案的两侧放置边界。

\b\d{4}\b

另一种选择是对空格使用\\s而不是\\b因为边界将匹配其他非字母数字字符。 取决于您要寻找的东西。

在这里看到

如您所说,您有200多个数字,然后使用以下代码:

<?php
 $texxt="abcd1245 784563 1234 3421 98756 kfg7456178";
 $results=array();
 preg_match_all('/\b\d{4}\b/', $texxt, $results);
 print_r($results);
?>

preg_match仅检查一次出现,而preg_match_all检查所有出现。 有关正则表达式的解释,请参阅doc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM