正则表达式随手记

基础知识

案例1

从类似于“中医师分会第一届委员会名单”的文本中,获取到届数“一”。类似的任务当中其实一直有个疑问,就是获取“第一届”和“一”的正则表达式的区别是什么?

1
text = "中医师分会第一届委员会名单"

正则表达式对于我来说就只有一种”(.*?)”一种使用方法,所以我提笔即写:

1
2
match = re.search("第(.*?)届",text)
print(match.group()) # 第一届

印象中,曾经遇到过想要类似于想要“第一届”但是只能获取到“一”,后来好像是这么做的:

1
2
match = re.search("(第.*?届)",text)
print(match.group()) # 第一届

可是这次不知道为什么两种pattern输出的结果是相同的。那如果只想获取到“一”呢?问了下Perplex.ai是这么说的:

1
2
3
4
match = re.search(r'(?<=第)[一二三四五六七八九十]+(?=届)', text)
if match:
_res = match.group()
print(_res)

案例2