php - 从字符串中获取邮政编码
问题描述
我正在尝试从地址字符串中获取邮政编码。
邮政编码可能如下所示:23-123
或50-530
.
字符串通常如下所示:Street 50, 50-123 City
我试图做的是找到邮政编码的位置并从该点开始剪切接下来的 6 个字符。不幸的是 strpos 一直返回 false。
$zipCodePosition = strpos($form->address, "\d{2}-\d{3}");
$zipCode = $zipCodePosition ? substr($form->address, $zipCodePosition , 6) : '';
解决方案
strpos
不允许使用正则表达式作为参数。
你需要一个preg_match
/preg_match_all
这里:
// Get the first match
if (preg_match('~\b\d{2}-\d{3}\b~', $text, $match)) {
echo $match[0];
}
// Get all matches
if (preg_match_all('~\b\d{2}-\d{3}\b~', $text, $matches)) {
print_r($matches[0]);
}
正则表达式匹配
\b
- 单词边界\d{2}
- 两位数-
- 一个连字符\d{3}
- 三位数\b
- 单词边界
请参阅正则表达式演示。
推荐阅读
- c++ - 字符串数组的C++动态向量
- javascript - 卡住:onclick 背景颜色属性正确更改但实际颜色未显示(使用 PHP 循环)
- sonarqube - 声纳扫描仪设置,用于多模块项目的单独依赖检查报告
- windows - Websphere 使用 Windows 密钥库不起作用
- c# - 比较 XML 文件(属性、节点和文本)
- android - 致命信号 11 (SIGSEGV),代码 1,tid 17996 中的故障地址 0xef38 (pool-10-thread-)
- angular - Angular5 与 Asp.Net Core 2.1 应用程序在 nginx 上的部署问题
- spring - Spring Boot,来自配置的 Feign 静态标头
- javascript - ReactDOM.render(元素,容器 [,回调])
- android - 单选按钮自动检查 RecyclerView 滚动而不单击