[英]How to handle with this regex which is associated with boundry '\\G'?
我最近正在学习Java的regex
部分,今天我遇到了关于使用boundry \\\\G
,这是我的代码:
String input = "abcdec";
System.out.println(String.format("Before :'%s' ; after replace : '%s'", input , input.replaceAll("\\Gx?", "!")));
当它打印Before :'abcdec' ; after replace : '!abcdec'
Before :'abcdec' ; after replace : '!abcdec'
,我不知道为什么打印它,在第一次与字符串开头匹配之后,将其替换为char'!' ,但是为什么它又不能匹配?我认为正则表达式为'\\ Gx? 可以匹配每个地方。
我需要您的帮助,感谢您的帮助!
编辑:好的,知道了。 删除了错误的假设。
发生的是:
replaceAll
从输入的开头(索引0
)开始。 \\G
匹配初始起始值0
x
没关系,这是有条件的 0
到0
! !
到输出 1
) 0
。 \\G
,应用于位置1
, 不匹配 ! !abc...
当我阅读Regex边界匹配器Java Tuturial的最后一个示例时,对我来说更清楚了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.