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)

运行结果:

原文地址:https://www.cnblogs.com/cttcarrotsgarden/p/10770205.html

时间: 2024-10-05 20:43:28

python 提取字符串中的指定字符 正则表达式的相关文章

*字符串-01. 在字符串中查找指定字符

1 /* 2 * Main.c 3 * D1-字符串-01. 在字符串中查找指定字符 4 * Created on: 2014年8月18日 5 * Author: Boomkeeper 6 *****部分通过****** 7 */ 8 9 #include <stdio.h> 10 11 int mysearch(char ch, const char str[], int length) { 12 13 int j, ret = -1; 14 15 for (j = 0; j < le

在字符串中查找指定字符

输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c.如果找不到则输出“Not found”:若找到则输出字符串S中从c开始的所有字符. 输入格式: 输入在第1行中给出一个不超过80个字符长度的.以回车结束的非空字符串:在第2行中给出一个字符. 输出格式: 在一行中按照题目要求输出结果. 输入样例1: It is a black box b 输出样例1: black box 输入样例2: It is a black box B 输出样例2: Not found #include<std

10-1. 在字符串中查找指定字符(15)

输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c.如果找不到则输出“Not found”:若找到则输出字符串S中从c开始的所有字符. 输入格式: 输入在第1行中给出一个不超过80个字符长度的.以回车结束的非空字符串:在第2行中给出一个字符. 输出格式: 在一行中按照题目要求输出结果. 输入样例1: It is a black box b 输出样例1: black box 输入样例2: It is a black box B 输出样例2: Not found 1 #include <

Python 判断字符串是否含有指定字符or字符串

Python 判断字符串是否含有指定字符or字符串 ,有如下方法: 1.使用成员操作符 in str1= "ABCDEF123descsf" str2= "CD" result = str2 in str1 print(result) # True 2.使用string模块的find()  rfind  index()  rindex() 原文地址:https://www.cnblogs.com/shenxiaolin/p/12602360.html

python提取字符串中数字

题目:[这是一个复杂问题的简化]如下是一个字符串列表,提取字符串中第二个数字,并判断是否大于1000,如果是,从列表中删除这一行. 1000\t1002\n .....[省略].... 代码: <pre name="code" class="python">oldStr = "1000\t1002\n" newStr = oldStr #匹配目标数字左侧字符串 t=newStr.index("\t") newStr

Python统计字符串中的中英文字符、数字空格,特殊字符

# -*- coding:utf8 -*- import string from collections import namedtuple def str_count(s): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = count_pu = 0 s_len = len(s) for c in s: # 英文 if c in string.ascii_letters: count_en +=

oracle去掉字符串中所有指定字符

Select Replace(字段名,'指定字符','替换字符') From 表名 --例: select replace('de.5d','.','') from dual --显示结果:de5d 转:https://blog.csdn.net/myflysun/article/details/26621731 原文地址:https://www.cnblogs.com/wangfuyou/p/10340181.html

字符串-01. 在字符串中查找指定字符(15)

输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c.如果找不到则输出“Not found”:若找到则输出字符串S中从c开始的所有字符. 输入格式: 输入在第1行中给出一个不超过80个字符长度的.以回车结束的非空字符串:在第2行中给出一个字符. 输出格式: 在一行中按照题目要求输出结果. 输入样例1: It is a black box b 输出样例1: black box 输入样例2: It is a black box B 输出样例2: Not found 1 #include <

c 删除字符串中的指定字符

#include <stdio.h> #include <string.h> void delChar(char *s, char ch) { int i,j; int len = strlen(s); for(i = 0; i < len; i++) { if(s[i] == ch) { for(j = i; j < len; j++) { s[j] = s[j+1]; i--; } } } } int main(int argc, char *argv[]) { p