【问题标题】:Notepad++ regex to replace match with the opposite value (true->false, and false->true)?Notepad++ 正则表达式用相反的值(真->假和假->真)替换匹配?
【发布时间】:2014-12-22 19:21:56
【问题描述】:

我有一个大文本文件,其中包含很多行,如下所示,我想交换其中的值。如,如果值为 1 将其替换为 0,如果值为 0 - 将其替换为 1。

Hidden=0
Hidden=1

我已经解决了“查找”正则表达式没问题:

Hidden\=([01]{1})

我的问题是如何用相反的方式替换它。

【问题讨论】:

  • 如果文件足够好,您可以尝试多步骤流程 - 将零替换为 00(或其他唯一标识符),将零替换为零,将 00 替换为一。
  • @herohuyongtao - 这个问题更具体(狭义)并且有不同的可能解决方案。

标签: regex replace notepad++


【解决方案1】:

没有办法绕过它 - 它需要 3 个步骤:

Search   | Replace
Hidden=0 | Hidden=X
Hidden=1 | Hidden=0
Hidden=X | Hidden=1

但它们非常简单。

如果您的代码中确实有Hidden=X,请为X 选择另一个字符,这样就找不到Hidden=?

【讨论】:

    【解决方案2】:

    是的,如果您提前修复文件,您可以设置一个正则表达式以一次性完成。这会交换每次传递的数字。

    确保文件是这样注释的(很容易运行一次正则表达式来添加 #0 或 #1)

    Hidden=1 #0 Don't remove (replace with your comment character of choice)
    Hidden=0 #1 Don't remove
    

    正则表达式搜索

    Hidden\=([01])\s+#([01])
    

    替换

    Hidden=\2 #\1
    

    没有其他方法可以一次性完成,除非 notepad++ 添加了对带有代码表达式的正则表达式引擎的支持。

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 1970-01-01
      • 2016-12-14
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      相关资源
      最近更新 更多