Python regex,如何搜索多个字符串?

2024-05-16 04:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正试图找出python正则表达式来找到任何匹配的字符串-。例如,'type1-001''type2-001'应该匹配,但是'type3-asdf001'不应该匹配。我希望能够与像[type1|type2|type3]-\d+这样的正则表达式匹配,以找到以type1type2type3开头,然后附加'-'和数字的任何字符串。另外,知道如何搜索任何附加了“-”和数字的大写文本也是很酷的。

这是我认为应该管用的,但我似乎做得不对。。。

pref_num = re.compile(r'[type1|type2]-\d+')

Tags: 字符串文本re数字numcompilepref大写
3条回答

如果只希望“type”后面的数字是可变的,则只应将这些数字放在方括号中,如下所示:

re.compile(r'type[1|2]-\d+')

[]将匹配出现在括号之间的任何字符集。要对regex进行分组,需要使用()。所以,我认为你的正则表达式应该是:

pref_num = re.compile(r'(type1|type2)-\d+')

关于如何搜索任何附加有-和数字的大写文本,我建议:

[A-Z]+-\d+

你可以用这个图案

'type[1-3]-[0-9]{3}'

演示

>>> import re
>>> p = 'type[1-3]-[0-9]{3}'
>>> s = 'type2-005 with some text type1-101 and then type1-asdf001'
>>> re.findall(p, s)
['type2-005', 'type1-101']

相关问题 更多 >