方法一 re正则

这里我查找的优先级是 市->省->自治区->县->区
代码实现

import rePATTERN = r'([\u4e00-\u9fa5]{2,5}?(?:市|省|自治区|县|区)){1}'
data = '''11111111111231231深圳市中药制造业创新中心有限公司经典名方麦门冬汤复方制剂开发研究'''
pattern = re.compile(PATTERN)
m = pattern.search(data)
place = m.group()
print(place)
#深圳市

如果想要功能更全的匹配

#description: 从字符串中提取省市县等名称import re
import sys#匹配规则必须含有u,可以没有r
#这里第一个分组的问号是懒惰匹配,必须这么做
PATTERN = r'([\u4e00-\u9fa5]{2,5}?(?:省|自治区|市)){0,1}([\u4e00-\u9fa5]{2,7}?(?:区|县|州)){0,1}([\u4e00-\u9fa5]{2,7}?(?:村|镇|街道)){1}'
data_list = ['北京市南瓜村', '陕西省西安市雁塔区大村', '西班牙镇街道', '北京市海淀区', '黑龙江省佳木斯市汤原县大村', '内蒙古自治区赤峰市',
'贵州省黔南州贵定县', '新疆维吾尔自治区伊犁州奎屯市']for data in data_list:country = ''province = ''city = ''district = ''#pattern = re.compile(PATTERN3)pattern = re.compile(PATTERN)m = pattern.search(data)if not m:print (country + '|||')continue#print m.group()country = '中国'if m.lastindex >= 1:province = m.group(1)if m.lastindex >= 2:city = m.group(2)if m.lastindex >= 3:district = m.group(3)out = '%s|%s|%s|%s' %(country, province, city, district)print (out)

解释如下

方法二 cpca

先安装cpca

pip install cpca

使用

import cpcadata = '''
(网)广州新溪项目河涌整治景观提升设计招标
'''
place = ''
place_list = list()
place_list.append(data)
integrity_place = cpca.transform(place_list)
print(integrity_place)
#      省    市     区                  地址  adcode
# 0  广东省  广州市  None  新溪项目河涌整治景观提升设计招标\n  440100
print(integrity_place['省'][0])
# 广东省

注意事项
cpca.transform()中的参数需为可迭代类型(如list,pandas的Series类型等),函数会将其转换为一个DataFrame

Python 正则提取字符串中的地区相关推荐

  1. python小记(五):python如何提取字符串中的数字或其他

    python中"python如何提取字符串中的数字或其他 前言 一.正则表达式 前言 自用 一.正则表达式 import re ^ 匹配字符串的开始. $ 匹配字符串的结尾. \b 匹配一个 ...

  2. java 正则 提取数字_java使用正则提取字符串中的数字(例如提取短信中的验证码)详解...

    使用java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pat ...

  3. python正则匹配字符串中的数字_Python正则表达式匹配字符串中的数字

    1.使用"\d+"匹配全数字 代码: import re zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650. ...

  4. java正则提取字符串中的符号汉字数字字母

    提取字符串中的符号 /*** 提取字符串中的所有符号* @param str* @return*/public static String getSymbol (String str) {String ...

  5. JAVA正则提取字符串中的日期

    在我们解析字符串的时候,有这么一个需求,需要提取字符中的日期,例如:"开奖日期:2021年3月28日 兑奖截止日期:2021年5月26日" 输入样例: 开奖日期:2021年3月28 ...

  6. python/正则 从字符串中提取数字

    string = 'Argentina:111min|UK:110min|Poland:106min(dvdrelease)' 提取出[111,110,106] 代码如下: import restri ...

  7. python怎么提取字符串中的数字_python如何提取字符串中的数字

    1.使用正则表达式,用法如下:python学习网,大量的免费python视频教程,欢迎在线学习!## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d ...

  8. python如何提取字符串中的数字

    1.使用正则表达式,用法如下: ## ^ 匹配字符串的开始.## $ 匹配字符串的结尾.## \b 匹配一个单词的边界.## \d 匹配任意数字.## \D 匹配任意非数字字符.## x? 匹配一个可 ...

  9. 正则提取字符串中内容

    有的时候,会有这样的需求,给定一个特定结构的字符串,需要将其中的可变部分提取出来,例如,有一段关于优惠券的话术"满199元减20元",其中,199是使用优惠券的条件,而20则是具体 ...

最新文章

  1. BB84和B92协议
  2. fso 拒绝访问_让虚拟主机免受FSO威胁(转)
  3. (chap8 确认访问用户身份的认证) SSL客户端认证
  4. idea报错解决:Cannot start compilation: the output path is not specified for module “XXX“.
  5. 一行代码值 200 万?雷军公开小米新 Logo 引吐槽
  6. linux 分步编译命令,GCC分步编译C++程序(汇总版)
  7. c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
  8. 最细致的Spring Boot结合Vue前后端分离项目打包部署步骤(搭配Nginx)
  9. 虚拟机访问本地mysql_虚拟机访问主机Mysql
  10. php爬虫大数据抓取_数据分析|爬虫抓取东方财富网股吧帖子
  11. robocode_Robocode大师的秘密,多态敌人缓存
  12. 系统集成项目管理工程师和PMP®的对比
  13. Python读取nc文件
  14. 掌握bandicam以及KMPlayer
  15. 台式计算机如何取消屏幕密码,台式电脑怎么取消锁屏?
  16. Unity Shader - Standard Shader 标准着色器
  17. Jenkins的安装及使用
  18. 数据仓库架构以及多维数据模型的设计
  19. 【学习VINS-MONO环境配置、测试】
  20. unity手机端发布

热门文章

  1. RabitMQ系列之 Spring RabbitMQ流量削锋实现案例之抢红包
  2. GAMES101笔记_Lec01_计算机图形学概述 Overview of Computer Graphics
  3. 基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql)
  4. 关于图片大小超过div盒子的讨论——补充
  5. 友盟分享 微博 c8998文件不存在
  6. 个人独资企业,核定征收;怎么申请?
  7. 2021年全国职业院校技能大赛 “大数据技术与应用”—模拟赛题(二)
  8. java.lang.IllegalArgumentException: argument type mismatch
  9. 插件化原理解析——广播的管理
  10. 古典音乐入门的常见问题