快速提问:我有一个regexp ^(?:\b[A-Z]+\b\s+)+(.*)\d{8},它提供了两个捕获组。我想将捕获组1替换为空白。那可能吗?
如果我确实替换为:\1它将替换TEST TESTER Hello, world. Another word here. 75793250->为Hello, world. Another word here。我想这样的结果:TEST TESTER 75793250。\1用空格代替。
快速提问:我有一个regexp ^(?:\b[A-Z]+\b\s+)+(.*)\d{8},它提供了两个捕获组。我想将捕获组1替换为空白。那可能吗?
如果我确实替换为:\1它将替换TEST TESTER Hello, world. Another word here. 75793250->为Hello, world. Another word here。我想这样的结果:TEST TESTER 75793250。\1用空格代替。
\1它将替换TEST TESTER Hello, world. Another word here. 75793250->为Hello, world. Another word here。我想这样的结果:TEST TESTER 75793250。\1用空格代替。
\1在最新版本的Notepad ++中,这对我不起作用,但是我可以改为使用它$0。看来他们更改了组替换语法。
Answers:
为什么要这么做。
这样做
正则表达式:^(\b[A-Z]+\b\s+)+(?:.*)(\d{8})
用。。。来代替:\1 \2
Invalid regular expression在Notepad ++ 6.3.3中提供了。请修改Anirudh。
TESTER 75793250因为捕获重复的组只会给您匹配的最后一个字符串。另一个示例:用abcd正则表达式(.)+替换字符串并替换字符串\1将导致字符串d
(?: ...)是一个非捕获组。