【问题标题】:Why doesn't this regular expression work in Notepad++?为什么这个正则表达式在 Notepad++ 中不起作用?
【发布时间】:2010-02-21 16:25:51
【问题描述】:

编辑: Notepad++ 的正则表达式引擎有一些问题。正则表达式在 Python 中运行良好。

我正在使用记事本++。我试图制作一个可以改变这种情况的正则表达式(如果你好奇,这是一个西班牙语的游戏指南):

*Acero:En la Estatua de Gabonba
**吸收 PV de un enemigo

到这里:

====Acero====
*En la Estatua de Gabonba
*吸收 PV de un enemigo

我想出了这个,但它与文本不匹配:

\*([^:]+): ([\w ]+)\n\*\*([^\n]+)

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 这在 Mac OS X 上的 TextMate 中匹配。
  • 可能是换行的问题。您是否尝试过 Windows 的 \r\n
  • @robert:是的,我让它在 Python 中工作,这似乎是 Notepad++ 的问题。我不知道为什么这里的答案被删除了,但是哦。谢谢。
  • 请正确回答并接受,否则我们将不得不清除这个问题。

标签: regex notepad++


【解决方案1】:

Notepad++ 似乎在正则表达式模式下找不到换行符。您必须将换行符替换为 |,在扩展模式下,将正则表达式应用于新字符串,然后将 |s 替换为换行符。

【讨论】:

    【解决方案2】:

    您的正则表达式是正确的。尝试分别搜索\*([^:]+): ([\w ]+)\*\*([^\n]+)会匹配。

    只是 Notepad++ 不支持多行正则表达式(因为 Scintilla 不支持)。请注意,有两种不同的搜索对话框可用:Ctrl+F 显示内置对话框,Ctrl+R 显示 TextFX 的对话框,它有更多选项。但是TextFX也不支持多行搜索。

    【讨论】:

      【解决方案3】:

      作为上述 2 个答案的另一个选项,TextPad 支持 POSIX 正则表达式语法(包括多行)。

      设置 TextPad 使用 POSIX:配置 -> 首选项 -> 编辑器 -> “使用 POSIX 正则表达式语法”

      在使用 TextPad 多年后,我自己更喜欢 Notepad++,但始终在我的系统上保留 TextPad 用于多行正则表达式和其他一些它做得很好的事情。

      【讨论】:

        猜你喜欢
        • 2013-12-05
        • 1970-01-01
        • 2021-03-14
        相关资源
        最近更新 更多