记事本++正则表达式引擎(scintilla)是否支持子字符串转义(类似于“\ Q。* [转义字符串]()+ \ E”)?

时间:2011-01-27 10:48:57

标签: regex escaping notepad++ scintilla

SUBJ。

我的意思是我不想将数十个'\'粘贴到搜索模式中。显而易见的方法是使用一对perl风格的特殊字符:

  • \ Q - 引用(禁用)模式元字符直到\ E
  • \ E - 结束案例修改

示例:\ Qtext here excaped“。* [] +”符号没有特殊含义\ E。

我发现,\ Q ... \ E在notepad ++中不起作用,所以我想知道是否还有其他能够转义子串的能力?

1 个答案:

答案 0 :(得分:3)

到目前为止,Scintilla使用PCRE,这意味着您可以使用\Q\E。下面的老答案,因为我觉得有趣的是历史上旧的“正则表达”甚至不是常规的;)


没有。 Scintilla仅支持非常小的正则表达式语法。 The documentation甚至突出显示正则表达式 1 中更多不受支持的部分。

我会说你应该得到一个像样的编辑或用其他工具替换: - )


1 这甚至包括交替(|),如果我没有弄错,这会限制这些正则表达式的强大功能(即使它们支持匹配中的反向引用)到扩展常规语言的子集。例如,我不认为语言{ab,bc}可以表示,尽管它显然是常规的。