我想写一行正则表达式,可以匹配像“(2000)”这样的字符串,并在圆括号中使用多年。那么我可以检查是否有任何字符串包含子字符串“2000”。例如,我想要正则表达式匹配(2000)不是2000,或者(20000)或(200)。 也就是说:他们必须有正好四位数字,第一位在1和2之间;他们必须包括括号。python 3正则表达式匹配字符串元字符
2000也只是一个例子,但我真的想要正则表达式包含所有可能的年份。
我想写一行正则表达式,可以匹配像“(2000)”这样的字符串,并在圆括号中使用多年。那么我可以检查是否有任何字符串包含子字符串“2000”。例如,我想要正则表达式匹配(2000)不是2000,或者(20000)或(200)。 也就是说:他们必须有正好四位数字,第一位在1和2之间;他们必须包括括号。python 3正则表达式匹配字符串元字符
2000也只是一个例子,但我真的想要正则表达式包含所有可能的年份。
特殊字符需要用反斜线进行转义。括号(
变成\(
。因此(2000)
变成\(2000\)
。
然后,你可以这样做:
if re.search(r"\(2000\)", subject):
# Successful match
else:
# Match attempt failed
>>> import re
>>> x = re.match(r'\((\d*?)\)', "(2000)")
>>> x.group(1)
'2000'
你必须躲避开闭paranthesis,
>>> import re
>>> str = """foo(2000)bar(1000)foobar2000"""
>>> regex = r'\(2000\)'
>>> result = re.findall(regex, str)
>>> print(result)
['(2000)']
OR
>>> import re
>>> str = """foo(2000)bar(1000)foobar(2014)barfoo(2020)"""
>>> regex = r'\([0-9]{4}\)'
>>> result = re.findall(regex, str)
>>> print(result)
['(2000)', '(1000)', '(2014)', '(2020)']
它匹配所有四位数字(年份)出现在巴兰国内论文。
你想要什么?你能给我们提供一些字符串匹配的例子吗? –
您可以简单地使用'\(\ d + \)' – hwnd
谢谢,由\([1-2](\ d {3})\解决) – lchai