php - PHP Regex:如何获取地址字符串中的第一个数字?
问题描述
我需要提取地址中第一次出现的数字。地址总是以类似的开头(我用粗体标记了我想要匹配的内容)......
- 公寓12 , 公寓 2...
- 12、公寓名称
为了让它更复杂一点,有些人可能在数字的一侧有字母,例如......
- 公寓12 a, 公寓 2...
- 3号楼12室...
到目前为止,我的解决方案有点工作,但不正确。我有一个正则表达式
\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";
}
任何人都可以改进我所拥有的吗?
解决方案
一个简单\d+
的应该做的工作。
推荐阅读
- javascript - 如何解决 React-Native 中 Modal 中两个组件之间的边距问题?
- python-3.x - 使用 Python 更新 Sqlite:InterfaceError:错误绑定参数 0 和 None 类型不可下标
- unity3d - 如何在 Unity 中从高处坠落时使板条箱破裂/破碎
- android - 如何修复sqlite查询错误在哪里?不会被选择参数替换
- mysql - 在 mySQL 工作台查询中获取平均时间
- javascript - javascript on mouse 和 key down/up 事件相结合
- perl - 使用 Perl 在文件中搜索和替换具有特殊字符的字符串
- swift - 试图从 Firebase 实时数据库中获取数据
- c++ - 在 C++ 中遇到“字符串下标超出范围”的问题
- php - UTF-8 tcpdf 与 cakeph 3 冲突