【问题标题】:Regex Notepad++ Searching for certain instances正则表达式 Notepad++ 搜索某些实例
【发布时间】:2014-10-22 20:50:44
【问题描述】:

我有一大群文本文件 (.xml) 正在寻找并查找。

由于转换,某些字母(i 和 l)在字母 f 之后被删除。

数据包含

的实例
  • “f re”火
  • “难”难
  • “反射器”反射器

还有更多案例。

丢弃的字母变成了空格。

我要搜索

f\s

但我想消除它,指出整个单词,如 off、of 和 if。

\soff\s
\sof\s
\sif\s

我想出了一个系列,但我不确定如何将正则表达式代码串在一起。

(?<!\so)f\s
(?<!\si)f\s
(?<!\sof)f\s

我们将不胜感激任何帮助, 谢谢

【问题讨论】:

  • Notepad++ 有一个有限的正则表达式引擎。不确定THIS 是否是正确的完整文档,但它似乎没有做任何简单的后视(刚刚测试)。无论如何,我在脑海中听到office
  • @KekuSemau,从 Notepad++ 6.0 开始,它在搜索中支持 POSIX 正则表达式,因此也支持固定长度的lookbehinds。
  • 这两个答案都在我的文件中找到了很好的发现。搜索“\b(?!(off|of|if))\w*f \w+”(67 个文件中的 465 个匹配项)搜索“(?

标签: regex search notepad++ lookbehind


【解决方案1】:

怎么样:

(?<!i|o)(?<!of)f\s

这将匹配f\s,前提是它前面没有ioof

我使用两个lookbehind,因为npp不接受可变长度lokkbehind。

它不匹配 off ce (office)。

【讨论】:

    【解决方案2】:

    不确定 Notepad++,但这种模式适用于其他正则表达式引擎

    \b(?!(off|of|if))\w*f \w+  
    

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2018-01-17
      • 1970-01-01
      相关资源
      最近更新 更多