python正则表达式 如何找到指定字符后面完整的数字字符串

发布网友 发布时间:2022-04-23 20:55

我来回答

2个回答

热心网友 时间:2022-04-06 01:00

使用re模块的search函数,能过正则表达式查找,代码如下:

import re
reg=re.compile(r"(?<=指定字符)\d+")
match=reg.search("待查找文本")
print match.group(0)

(?<=指定字符)此部分定位指定字符,查找但不包含

\d+此部分为一个以上数字

这样就可以查找出数字字符串

热心网友 时间:2022-04-06 02:18

1. 首先 p.search(s) 只会找第一个匹配的字符串
2. 其次 p.findall(s) 会记录匹配的组,而(19|20) 代表一个组,应该改成(?:19|20)

以下代码可以满足你的要求:
# -*- coding: utf-8 -*-
from __future__ import print_function, division
import re

s = 'ID: 042 SEX: M DOB: 1967-08-17 Status: Active 1968'
p = re.compile(r'(?:19|20)\d{2}')
#s = 'ID: 042 SEX: M DOB: 1967-08-17 Status: Active 1968'
all_items = re.findall(p,s)
map(print, all_items)
print(all_items)追问没有再简单点的方式了么? 比如用一条语句 search或match搞定 多谢

追答...这已经很简单了..。你追求代码量少?

# -*- coding: utf-8 -*-
import re

s = 'ID: 042 SEX: M DOB: 1967-08-17 Status: Active 1968'
p = re.compile(r'(?:19|20)\d{2}')
print " ".join(re.findall(p,s))
print re.findall(p,s)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com