首页 > 解决方案 > PHP Regex:如何获取地址字符串中的第一个数字?

问题描述

我需要提取地址中第一次出现的数字。地址总是以类似的开头(我用粗体标记了我想要匹配的内容)......

为了让它更复杂一点,有些人可能在数字的一侧有字母,例如......

到目前为止,我的解决方案有点工作,但不正确。我有一个正则表达式

\b([0-9]+)\b

这让任何数字都被两边的空格包围,但首先它得到的是所有事件而不是第一个,这对我的要求至关重要。其次,它不处理一侧带有字母的数字,因此例如忽略 12a。

示例代码...

$subject="A 2nd test, Apartment 3, Building 1232, Random Street, RH12 4SZ";
echo "Text to find number in: $subject<BR>";
if (preg_match('\b([0-9]+)\b', $subject, $matches)) {
    echo "match, found number: ".implode(",",$matches);
}else{
    echo "no match";
}

任何人都可以改进我所拥有的吗?

标签: phpregex

解决方案


一个简单\d+的应该做的工作。

演示:https ://3v4l.org/vLCaf


推荐阅读