Regex 记事本++;正则表达式是否要用相反的值(true->;false和false->;true)替换匹配?
我有一个很大的文本文件,其中有很多行,如下所示,我想交换这些行的值。如中所示,如果值为1,则将其替换为0;如果值为0,则将其替换为1Regex 记事本++;正则表达式是否要用相反的值(true->;false和false->;true)替换匹配?,regex,replace,notepad++,Regex,Replace,Notepad++,我有一个很大的文本文件,其中有很多行,如下所示,我想交换这些行的值。如中所示,如果值为1,则将其替换为0;如果值为0,则将其替换为1 Hidden=0 Hidden=1 我已经计算出“find”正则表达式没问题: Hidden\=([01]{1}) 我的问题是如何用相反的方法替换它。没有办法解决它-它需要3个步骤: Search | Replace Hidden=0 | Hidden=X Hidden=1 | Hidden=0 Hidden=X | Hidden=1 但它们很简单 如果
Hidden=0
Hidden=1
我已经计算出“find”正则表达式没问题:
Hidden\=([01]{1})
我的问题是如何用相反的方法替换它。没有办法解决它-它需要3个步骤:
Search | Replace
Hidden=0 | Hidden=X
Hidden=1 | Hidden=0
Hidden=X | Hidden=1
但它们很简单
如果您的代码中确实有
Hidden=X
,请为X
选择另一个字符,以便找不到Hidden=?
。是的,如果您提前修复了文件,您可以设置一个正则表达式,一次完成。这将交换每次传递的数字
确保文件的注释如下(运行一次性正则表达式以添加#0或#1非常简单)
正则表达式搜索
Hidden\=([01])\s+#([01])
替换
Hidden=\2 #\1
除非notepad++增加了对带有代码表达式的正则表达式引擎的支持,否则没有其他方法可以一次完成。如果文件足够好,您可以尝试多步骤处理-将零替换为00(或其他唯一标识符),将一替换为零,将00替换为一。@herohuyongtao-这个问题更具体(狭窄)并且有不同的可能解决方案。
Hidden=\2 #\1