如果我在Notepad ++中使用长正则表达式,即:
^([^ ]+) ([^ ]+) ([^ ]+) (\[.*?\]) (".*?") (".*?") (".*?") (".*?") (\d+) (\d+) (\d+)$
(这是用于将Apache日志行从空格分隔转换为制表符分隔)
然后我无法成功使用超过9个反向引用进行替换,因为\10
会产生第一个捕获组的内容加上文字" 0"。
我尝试使用$10
,但结果相同。
答案 0 :(得分:8)
您可以使用花括号:
${10}
作为参考,Notepad ++使用boost::regex
,您可以在此处找到其替换模式文档:Boost-Extended Format String Syntax。此替换模式允许在替换模式中使用更复杂的表达式(如条件和常见的Perl占位符)。
答案 1 :(得分:2)
只需使用花括号:
REQ/REP
这将确保第10个捕获组被引用,而不是第1组后跟零。