java正则表达式捕获组的问题"^([^.]+\\.)+" []中算一个捕获组吗,()外^+算在捕获组中吗
replaceAll("^([^.]+\\.)+","$1")会捕获到([^.]+\\.)的内容吗...
replaceAll("^([^.]+\\.)+", "$1")会捕获到([^.]+\\.)的内容吗
展开
1个回答
展开全部
[]不算一个捕获组
()外的内容不算在捕获组当中,而且^+本来就不会被捕获……
举个例子:
"123.456.789.".replaceAll("^([^.]+\\.)+", "$1")
字符串123.456.789.最后会被替换为789.因为捕获组$1最后捕获的内容是789.
更多追问追答
追答
[^.]的意思是匹配所有不是.点的字符,[^.]+表示捕获所有连续的不是点的字符串。
之所以com没有被替换,是因为资源的内容是com而不是com.
注意我上面的例子中789后面还有个.点
分组([^.]+\\.)中要求匹配\\.所以必须有点,com后面没点,所以不在捕获内容当中,也就不会被替换
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询