(Notepad ++)在两个子串之间查找超过一定长度的字符串

时间:2018-06-08 10:15:58

标签: notepad++

有没有人知道是否有办法找到长度超过一定长度的文字,并且是在两个子串之间?

例如:

<element><![CDATA[Hi, I'm a message.]]></element>

我需要找到CDATA []中的任何文本字符串超过136个字符。 该字符串也可以在多行上:

<element><![CDATA[Hi, I'm a message,
and I'm on 2 lines.]]></element>

1 个答案:

答案 0 :(得分:0)

使用搜索模式Regular expression. matches newline选择

运行以下搜索
<\!\[CDATA\[(?:(?!\]\]>).){137,}

说明: 对于CDATA标记的开头,<\!\[CDATA\[是一个带有转义的文字

(?: ... )是一个非捕获组,在此处是逻辑包围

(?!\]\]>).只要文字]]>在这里匹配任何字符

就会说

{137,}说这样做137次(至少)

因此,这将达到您想要的任何CDATA

您可能希望在末尾添加\]\]>以使用关闭标记,但是匹配结束标记是不必要的(假设文档格式正确)

这会将新行计为字符,如果这是一个问题,您可以将.替换为(?:.\n*)以减少此影响