正则表达式在Notepad ++中不起作用

时间:2014-03-27 14:07:05

标签: regex notepad++

我正在做一个Find&在Notepad ++中替换。每个部分都能正常工作,但是当我将整个字符串放在一起时,它就无法正常工作。

我正在编辑一个旧的HTML文档,原始页面会剪切文本,因此:

<div>
    <h2>Title</h2>
    <p>This is a line of[CR][LF]
    text that was cut to[CR][LF]
    fit on screen.</p>
</div>

我想找到切断文本并消除它们的换行符,但不是其他换行符。

我的正则表达式是:

([A-z0-9]+)[\r\n][ ]{3,}([A-z0-9]+)

将替换为:

$1 $2

我已经尝试了我的正则表达式的每一部分,他们都找到了我期望的结果:([A-z0-9]+)找到文字,[\r\n]找到我的换行符,[ ]{3,}找到他们的初始缩进,([A-z0-9]+)再次找到文本。

我甚至尝试了几组表达式,它们都有效:([A-z0-9]+)[\r\n]在一行的末尾找到文本,[\r\n][ ]{3,}在新行的开头用缩进找到换行符,并且[ ]{3,}([A-z0-9]+)正在查找文本的初始缩进。

也许我有两个问题: 1)这是一个Notepad ++错误,还是我错过了正则表达式的东西? 2)关于通过其他表达来解决这个问题的任何想法?

如果它是一个错误,我想我可以试验和错误,直到有效。但是,报告错误可能会很好,所以如果有人可以验证这一点,那将会有所帮助。

1 个答案:

答案 0 :(得分:1)

你的正则表达式:

([A-z0-9]+)[\r\n][ ]{3,}([A-z0-9]+)

匹配\r OR \n之一。

使用此:

([A-Za-z0-9]+)[\r\n]+[ ]{3,}([A-Za-z0-9]+)

([A-Za-z0-9]+)\R+[ ]{3,}([A-Za-z0-9]+)