PHP简单实现正则匹配省市区的方法


Posted in PHP onApril 13, 2018

本文实例讲述了PHP简单实现正则匹配省市区的方法。分享给大家供大家参考,具体如下:

省市区正则匹配

preg_match('/(.*?(省|自治区|北京市|天津市))+(.*?(市|自治州|地区|区划|县))+(.*?(区|县|镇|乡|街道))/', $address, $matches);

获得省市区数组

$address = '广东省深圳市南山区';
preg_match('/(.*?(省|自治区|北京市|天津市))/', $address, $matches);
if (count($matches) > 1) {
  $province = $matches[count($matches) - 2];
  $address = str_replace($province, '', $address);
}
preg_match('/(.*?(市|自治州|地区|区划|县))/', $address, $matches);
if (count($matches) > 1) {
  $city = $matches[count($matches) - 2];
  $address = str_replace($city, '', $address);
}
preg_match('/(.*?(区|县|镇|乡|街道))/', $address, $matches);
if (count($matches) > 1) {
  $area = $matches[count($matches) - 2];
  $address = str_replace($area, '', $address);
}
return [
  'province' => isset($province) ? $province : '',
  'city' => isset($city) ? $city : '',
  'area' => isset($area) ? $area : '',
];

感觉应该还有更好的方法,欢迎评论留言

PHP 相关文章推荐
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
初识ThinkPHP控制器
Apr 07 PHP
php修改数组键名的方法示例
Apr 15 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
解析laravel使用workerman用户交互、服务器交互
Apr 28 PHP
详细分析PHP7与PHP5区别
Jun 26 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 #PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 #PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 #PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 #PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 #PHP
PHP实现的简单组词算法示例
Apr 10 #PHP
PHP实现的大文件切割与合并功能示例
Apr 10 #PHP
You might like
两个强悍的php 图像处理类1
2009/06/15 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
PHP7变量处理机制修改
2021/03/09 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
如何重置vue打印变量的显示方式
2017/12/06 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
JavaScript工具库MyTools详解
2020/01/01 Javascript
vue实现计算器功能
2020/02/22 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python判断Abundant Number的方法
2015/06/15 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
python爬取个性签名的方法
2018/06/17 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
西班牙手机之家:Phone House
2018/10/18 全球购物
工程总经理工作职责
2013/12/09 职场文书
消防安全责任书范本
2014/04/15 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
实习指导教师评语
2014/12/30 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL