我试图弄清楚如何使用正则表达式替换从字符串[###:###]的开头删除此[###:###]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

09-28 08:29