替换除注释行之外的每一行上出现的所有字符

时间:2017-12-03 16:08:44

标签: regex replace wsh emeditor

我需要一种方法在文件的每一行上用“n”替换所有字符“y”和“r”除了以“>”开头的行使用EmEditor的内置Regex ++(John Maddock博士的1.57版本)。这个正则表达式的风格supports只有固定长度的后台,并且没有正则表达式的所有高级.NET增强功能。

以下是输入文件的示例:

> A header containing "y" and "r"    
tttttrtagggaar-rrgatctg--gcctrtcc---cacyaayygggayyyaggc

这是更换的理想结果:

> A header containing "y" and "r"  
tttttntagggaan-nngatctg--gcctntcc---cacnaanngggannnaggc

能够在一个步骤中执行此类更换是理想的。但目前我完全坚持找到一个两步或基于脚本的解决方案(EmEditor allows writing Windows Scripting Host macroses)。我知道我可以使用正则表达式^(?!>).*$找到所有未注释的行,但是没有找到一种方法来选择它们,以便仅在选择中执行替换r|yn (使用"Replace" dialog中的相应选项)。

有没有办法用EmEditor实现这一目标?

1 个答案:

答案 0 :(得分:0)

由于EmEditor默认的正则表达式引擎是Boost,你可以这样做:

查找:^>.*|([yr])

替换为:(?1:n:$0)

注意:应该打开多行模式。