如何在Notepad ++ regexp中使用九个以上的反向引用?

时间:2016-03-15 11:47:41

标签: regex notepad++ backreference capturing-group

如果我在Notepad ++中使用长正则表达式,即:

^([^ ]+) ([^ ]+) ([^ ]+) (\[.*?\]) (".*?") (".*?") (".*?") (".*?") (\d+) (\d+) (\d+)$

(这是用于将Apache日志行从空格分隔转换为制表符分隔)

然后我无法成功使用超过9个反向引用进行替换,因为\10会产生第一个捕获组的内容加上文字" 0"。

我尝试使用$10,但结果相同。

2 个答案:

答案 0 :(得分:8)

您可以使用花括号:

${10}

作为参考,Notepad ++使用boost::regex,您可以在此处找到其替换模式文档:Boost-Extended Format String Syntax。此替换模式允许在替换模式中使用更复杂的表达式(如条件和常见的Perl占位符)。

答案 1 :(得分:2)

只需使用花括号:

REQ/REP

这将确保第10个捕获组被引用,而不是第1组后跟零。