我是python的新手,我正在试图找出python正则表达式来查找匹配的任何字符串 - 。例如,'type1-001'
和'type2-001'
应匹配,但'type3-asdf001'
不应匹配。我希望能够与[type1|type2|type3]-\d+
这样的正则表达式匹配,以查找以type1
,type2
或type3
开头的任何字符串,然后附加{{1}和数字。此外,知道如何搜索附加“ - ”和数字的任何大写文本会很酷。
这是我认为应该起作用的,但我似乎无法做到正确......
'-'
答案 0 :(得分:1)
如果您只想在&#34之后输入数字,请输入"要变量,那么你应该只把它们放在方括号中,如下所示:
re.compile(r'type[1|2]-\d+')
答案 1 :(得分:1)
[]
将匹配括号之间出现的任何字符集。要对正则表达式进行分组,您需要使用()
。所以,我认为你的正则表达应该是这样的:
pref_num = re.compile(r'(type1|type2)-\d+')
至于如何搜索附加-
和数字的任何大写文字,我建议:
[A-Z]+-\d+
答案 2 :(得分:0)
您可以使用模式
'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']
答案 3 :(得分:0)
pref_num = re.compile(r'(type1|type2|type3)-\d+')
m = pref_num.search('type1-000')
if m != None: print(m.string)
m = pref_num.search('type2-000')
if m != None: print(m.string)
m = pref_num.search('type3-abc000')
if m != None: print(m.string)