python 提取字符串中的指定字符 正则表达式

Posted cttcarrotsgarden

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 提取字符串中的指定字符 正则表达式相关的知识,希望对你有一定的参考价值。

例1:

字符串: 湖南省长沙市岳麓区麓山南路麓山门

提取:湖南,长沙

 

在不用正则表达式的情况下:

address = 湖南省长沙市岳麓区麓山南路麓山门

address1 = address.split()  # 用“省”字划分字符串,返回一个列表
address2 = address1[1].split()  # 用“市”字划分address1列表的第二个元素,返回一个列表

print(address1)  # 输出 [‘湖南‘, ‘长沙市岳麓区麓山南路麓山门‘] 
print(address2)  # 输出 [‘长沙‘, ‘岳麓区麓山南路麓山门‘]

data = {  
    省份: address1[0],
    城市: address2[0]
}

print(data) # 输出 {‘省份‘: ‘湖南‘, ‘城市‘: ‘长沙‘}

 

输出结果:

技术图片

 

例二:

从一段文字中提取指定两段字符中间的字符

字符串 = ‘’师资力量学校现有教职工近4000余人,其中专任教师1800余人,教授、副教授1100余人,中国科学院院士3名,中国工程院院士3名,双聘两院院士2名,加拿大工程院院士1名,发展中国家科学院院士1名,“千人计划”53人,“万人计划”学者13人、“长江学者”15人,国家杰出青年基金获得者21人,国务院学位委员会学科评议组成员6人,入选国家百千万人才工程(“百千万人才工程”一二层次人选、新世纪百千万人才工程国家级人选)23人、国家创新人才推进计划中青年创新领军人才2人,教育部新世纪优秀人才支持计划入选者134人,湖南省“百人计划”学者64人,湖南省“芙蓉学者奖励计划”特聘教授、讲座教授17人,享受政府特殊津贴专家201人,国家教学名师4人,国家自然科学基金创新研究群体3个,教育部“长江学者与创新团队发展计划”创新团队8个,湖南省自然科学基金创新研究群体11个。(数据截止日期:2017年01月) [31]  “

 

指定两段字符:“长江学者”与“人”,

目标字符:中间的数字“15”

 

正则式:

  •  (.+?)    惰性匹配
  •   \\d+    匹配多个数字
import re

s = "师资力量学校现有教职工近4000余人,其中专任教师1800余人,教授、副教授1100余人,中国科学院院士3名,中国工程院院士3名,"     "双聘两院院士2名,加拿大工程院院士1名,发展中国家科学院院士1名,“千人计划”53人,“万人计划”学者13人、“长江学者”15人,"     "国家杰出青年基金获得者21人,国务院学位委员会学科评议组成员6人,入选国家百千万人才工程(“百千万人才工程”一二层次人选、"     "新世纪百千万人才工程国家级人选)23人、国家创新人才推进计划中青年创新领军人才2人,教育部新世纪优秀人才支持计划入选者134人,"     "湖南省“百人计划”学者64人,湖南省“芙蓉学者奖励计划”特聘教授、讲座教授17人,享受政府特殊津贴专家201人,国家教学名师4人,"     "国家自然科学基金创新研究群体3个,教育部“长江学者与创新团队发展计划”创新团队8个,湖南省自然科学基金创新研究群体11个"     "。(数据截止日期:2017年01月) [31] "  # 由于字符串过长,在编译器中会要求换行,字符“\\”为换行后自动添加的,不影响字符串本身

n = re.findall(r"长江学者(.+?)人", s)  # 正则表达式匹配长江学者人数  提取“长江学者”和其后的“人”之间的字符,返回一个列表
print(n)
num = re.findall(\\d+, str(n))  # 正则表达式提取数字,返回一个列表
print(num)
num = 长江学者:+num[0]+  # 重新构建一个字符串
print(num)

 

运行结果:

技术图片

 

以上是关于python 提取字符串中的指定字符 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

python 如何提取特定字符中间的内容

jquery 怎么 使用 正则表达式 提取 字符串中的时间

如何用excel中的VBA的正则表达式提取出字符串?

有关正则表达式的问题:将中文字符串中的日期提取出来

Python编程实现正则表达式验证提取给定字符串中的句首字母应大写的字符?

python正则表达式提取字符串中的数字