如何编写用于匹配字符串Copyright (C) 2017 - 2018,
的正则表达式
这是我的代码,
import re
find = 2018
COPYRIGHT_PATTERN = re.compile(
r'Copyright (C) \d{4} - {0},'.format(find)
)
test_str = 'Copyright (C) 2002 - 2018,'
if COPYRIGHT_PATTERN.match(test_str):
print('Found match')
但是它不起作用。我也想将2018
替换为2019
。
答案 0 :(得分:4)
您可以这样修改当前代码:
import re
find = 2018
COPYRIGHT_PATTERN = re.compile(
r'(Copyright \(C\) \d{{4}} - ){0},'.format(find)
)
test_str = 'Copyright (C) 2002 - 2018,'
print(COPYRIGHT_PATTERN.sub(r'\g<1>2019', test_str))
请参见Python demo
详细信息
{
和}
必须加倍。(
和)
字符必须在正则表达式中转义以匹配文字括号re.sub
而不是re.match
{0}
开头和之前添加的未转义括号)\g<X>