你如何使用Notepad ++正则表达式管道对于超过一个字符的字符串?

时间:2009-05-04 16:10:42

标签: regex notepad++ pipe

我正在尝试使用notepad ++来正则表达式在下面的句子中找到“abc”和“def”的所有实例:

  

abc去了def。

以下语法似乎都不起作用:

  • ABC | DEF
  • [ABC | DEF]
  • (ABC)|(DEF)
  • (ABC | DEF)

注意:“[a | d]”在我测试时匹配“a”或“d”的任何实例

5 个答案:

答案 0 :(得分:24)

“长于一个字符”并不特别,Notepad ++不支持|正则表达式中的字符。甚至“a | d”都不起作用。请参阅the regex help page Notepad ++的6.1.1版现在支持|

我建议使用具有正确的正则表达式实现的编辑器,例如gvimUltraEdit

答案 1 :(得分:11)

升级到Notepad ++ v6。来自更改日志:支持“PCRE(Perl兼容正则表达式)”。我已经证实了|在使用Notepad ++ v6时,可以在正则表达式搜索中使用。

答案 2 :(得分:1)

在字符集声明([…])中,只有字符\]-是特殊字符,具有转义下一个字符的特殊功能,关闭字符集声明和标记字符范围(仅当不在开头或结尾写入时)。任何其他角色都被解释为普通角色。

|中的[a|d]也是如此,这意味着[a|d]描述了a|d中的任何字符,而不只是ada|d相同。

答案 3 :(得分:1)

我遇到了同样的问题,这就是我降落在这里的方式。由于这是一个记事本++缺陷,我们可以通过使用Powershell来做。在您的情况下,只需运行Select-String:

`ss abc,def filename`

如果在Unix上,那么你当然还有像grep这样的其他工具。

我认识到你想要一个记事本++的解决方案,我也是,但有时候你必须做。

答案 4 :(得分:1)

|现在应该工作。
感谢Notepad ++中的正则表达式改进

ABC | DEF

(ABC)|(DEF)