快速提问:我有一个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
(?: ...)
是一个非捕获组。