php - 将街道名称与街道号码分开

标签 php python regex preg-replace

<分区>

我试图将具有这些模式的街道名称与街道号码分开:

  1. "street 12"--- name:street, number:12
  2. "street12"--- 姓名:街道,号码:12
  3. "street 12a"--- name:street, number:12a
  4. "street12a"--- 名称:街道,编号:12a

在php和python中获取街道名称的正则表达式和获取街道编号的正则表达式是什么?

注意:数字总是在街道名称之后,所以我想应该缩短它。

谢谢。

最佳答案

我建议确定数字何时开始的最佳方法是在您按下数字时。因此,您将使用

preg_match('/^([^\d]*[^\d\s]) *(\d.*)$/', $address, $match)

例子:

'Bubbletown 145' => 'Bubbletown', '145'
'Circlet56a' => 'Circle', '56a'
'Bloomfield Avenue 68' => 'Bloomfield Avenue', '68'
'Quibbit Ave       999a' => 'Quibbit Ave', '999a'
'Singletown551abc' => 'Singletown', '551abc'

您最好考虑如何处理边缘情况,然后编写单元测试来测试您自己的 Regex 函数。

关于php - 将街道名称与街道号码分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488557/

相关文章:

c# - 需要一些正则表达式帮助

php - 在 PHP 中检查相对与绝对路径/URL

php - 防止用户在 Javascript 中直接看到 PHP url

python - 如何在 python 中使用多处理正确终止子进程

java - MongoDB regex,与控制台相比,我从 Java API 得到了不同的答案

java - 字符串操作编码建议

java - 添加到数组的最小可能值?

php - 如何让表头和表尾出现在每一页上?

python - 替换和覆盖而不是附加

python - 包空间模型