我在一个大文件中有一个重复的文本,我想用其他一些文本替换。例如:
一些文字....... \ n 按范围划分(STRT_DTTM)\ n 一些文字... \ n ); 我想使用regex来找到这些以范围划分开始并以)结尾的块;并用“ THIS IS TEST”代替该模块。我正在使用以下代码 汇入
private const int WM_ERASEBKGND = 20;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_ERASEBKGND)
{
m.Result = IntPtr.Zero;
}
else
{
base.WndProc(ref m);
}
}
能不能让我知道我要去哪里错了。
答案 0 :(得分:2)
您必须对所有正则表达式保留符号使用\--[\^$.|?*+(){}
。最终代码为:
import re
text = "partition by range(CANE) uno"
s = re.compile("^partition by range\(.*\)",re.MULTILINE)
replace = re.sub(s, 'THIS IS TEST', text)
print(replace)
结果是:
THIS IS TEST uno
答案 1 :(得分:1)
如果您的文本跨越多行,例如
some text.......
partition by range (STRT_DTTM)
some more text......
);
然后,您将必须使用(?s)
修饰符来启用.
与新行匹配。
示例python代码,
import re
s = '''some text.......
partition by range (STRT_DTTM)
some more text......
);'''
mods = re.sub(r'(?s)partition by range(.*?)\);','THIS IS TEST',s)
print(mods)
打印
some text.......
THIS IS TEST