Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python 3正则表达式匹配字符串元字符_Python_Regex_String_Python 3.x_String Matching - Fatal编程技术网

python 3正则表达式匹配字符串元字符

python 3正则表达式匹配字符串元字符,python,regex,string,python-3.x,string-matching,Python,Regex,String,Python 3.x,String Matching,我想写一行正则表达式,它可以匹配字符串,比如“(2000)”和括号中的年份。然后我可以检查是否有任何字符串包含子字符串“2000” 例如,我希望正则表达式与(2000)匹配,而不是与(2000)或(20000)或(200)匹配。 也就是说:它们必须正好有四个数字,第一个数字介于1和2之间;它们必须包括括号 此外,2000只是我使用的一个示例,但我确实希望正则表达式包含所有可能的年份。特殊字符需要用反斜杠转义。括号(变为\(。因此(2000)变为\(2000) 然后,您可以执行以下操作: if r

我想写一行正则表达式,它可以匹配字符串,比如“(2000)”和括号中的年份。然后我可以检查是否有任何字符串包含子字符串“2000”

例如,我希望正则表达式与(2000)匹配,而不是与(2000)或(20000)或(200)匹配。 也就是说:它们必须正好有四个数字,第一个数字介于1和2之间;它们必须包括括号


此外,2000只是我使用的一个示例,但我确实希望正则表达式包含所有可能的年份。

特殊字符需要用反斜杠转义。括号
变为
\(
。因此
(2000)
变为
\(2000)

然后,您可以执行以下操作:

if re.search(r"\(2000\)", subject):
    # Successful match
else:
    # Match attempt failed

你必须摆脱开闭式的妄想症

>>> import re
>>> str = """foo(2000)bar(1000)foobar2000"""
>>> regex = r'\(2000\)'
>>> result = re.findall(regex, str)
>>> print(result)
['(2000)']


它匹配所有四位数字(年份)。

你想要什么?你能给我们字符串匹配和不匹配的示例吗?你可以简单地使用
\(\d+\)
谢谢,由([1-2](\d{3})解决)
>>> import re
>>> str = """foo(2000)bar(1000)foobar2000"""
>>> regex = r'\(2000\)'
>>> result = re.findall(regex, str)
>>> print(result)
['(2000)']
>>> 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)']