我试图弄清楚如何使用正则表达式替换从字符串[###:###]
的开头删除此[###:###]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'
如何正确格式化正则表达式?
答案 0 :(得分:2)
应该在原始字符串文字中使用单个反斜杠来转义特殊的正则表达式元字符和速记字符类。
使用
import re
line = '[123:456]othertext'
print re.sub(r'^\[\d*:\d*\]','',line)
# ^ ^
# => othertext
请参阅Python demo