匹配相同的组与捕获的组Regex

时间:2018-04-25 12:29:10

标签: regex regex-lookarounds regex-group

有没有办法将组的正则表达式捕获为逻辑而不是后引用捕获的值。

例如:以下正则表达式将捕获IP = A.B.C.D的IP地址,其中A,B,C,D值的范围在0到255之间,但A,B,C,D不应相等。如果我在以下代码中使用了反向引用:

Pattern ptr=  Pattern.compile(
"^(?<num>[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]\\k<num>[.]\\k<num>[.]\\k<num>$");

然后,D应该等于C应该等于A。

我需要再次匹配正则表达式组而不是值。每次我想要匹配时,我是否必须键入相同的组,或者是否有简化的方法。

Pattern ptr=  Pattern.compile(
"^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])
[.]([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
);

0 个答案:

没有答案