我想寫一行正則表達式,可以匹配像「(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