2010-02-21 94 views
0

编辑:记事本+ +的正则表达式引擎是一个问题。正则表达式在Python中运行良好。为什么这个正则表达式在Notepad ++中不起作用?

我正在使用Notepad ++。我试图让一个正则表达式,将改变这个(如果你很好奇,它是游戏的西班牙语导游):

*阿塞罗:恩LA Estatua德Gabomba
** Absorbe PV德UN enemigo

要这样:

==== ====阿塞罗
*恩拉Estatua德Gabomba
* Absorbe PV日联合国enemigo

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

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

我失去了一些东西明显?

+1

这与Mac OS X上的TextMate相匹配。 – 2010-02-21 16:29:08

+0

也许这是换行符问题。您是否尝试过Windows'\ r \ n'而不是? – Gumbo 2010-02-21 16:32:34

+0

@robert:是的,我得到它在Python中的工作,它似乎是Notepad ++的问题。我不知道为什么这里的答案被删除了,但是哦。谢谢。 – Javier 2010-02-21 16:40:12

回答

4

看来Notepad ++在正则表达式模式下找不到换行符。您必须用扩展模式替换换行符,例如|,在新字符串上应用正则表达式,然后用换行符替换|

3

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

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

0

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

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

我喜欢记事本+ +我使用TextPad多年后,却始终保持TextPad我的系统上多行正则表达式和其他一些很好的事情。

相关问题