我是python的新手,正在尝试使用python regex来查找任何与-匹配的字符串。例如,'type1-001'
和'type2-001'
应该匹配,但'type3-asdf001'
不应该匹配。我希望能够与像[type1|type2|type3]-\d+
这样的正则表达式匹配,以查找任何以type1
、type2
或type3
开头,然后附加'-'
和数字的字符串。此外,如果知道如何搜索任何带有'-‘和数字的大写文本,那将是很酷的。
这是我认为应该行得通的方法,但我似乎做不对……
pref_num = re.compile(r'[type1|type2]-\d+')
发布于 2015-05-21 01:51:23
[]
将匹配出现在方括号之间的任何一组字符。要对正则表达式进行分组,需要使用()
。所以,我认为您的正则表达式应该是这样的:
pref_num = re.compile(r'(type1|type2)-\d+')
至于如何搜索任何附加了-
和数字的大写文本,我建议:
[A-Z]+-\d+
发布于 2015-05-21 01:40:02
如果你只希望"type“后面的数字是可变的,那么你应该只把那些放在方括号里,如下所示:
re.compile(r'type[1|2]-\d+')
发布于 2015-05-21 01:39:53
您可以使用模式
'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']
https://stackoverflow.com/questions/30356546
复制相似问题