我试图弄清楚如何使用正则表达式替换从字符串[###:###]
的开头删除此[###:###]other random text
。
我试过了:
line = '[123:456]othertext'
print re.sub(r'^[\d*:\d*],'',line)
但这将括号留在后面:
'[]othertext'
这里的问题是,括号通常表示正则表达式捕获组。因此,我然后尝试使用转义键
\\
忽略它们:line = '[123:456]othertext'
print re.sub(r'^\\[\d*:\d*\\],'',line)
这表明字符串没有变化:
'[123:456]othertext'
如何正确格式化正则表达式?
最佳答案
在原始字符串文字中应使用单反斜杠,以转义特殊的正则表达式元字符和速记字符类。
采用
import re
line = '[123:456]othertext'
print re.sub(r'^\[\d*:\d*\]','',line)
# ^ ^
# => othertext
见Python demo