正则表达式 - 使用匹配组

时间:2015-10-09 06:58:02

标签: java regex

我写了一个正则表达式

Parent p = new Parent(1);
Child  c = new Child(1, 2);
System.out.println(p.equals(c)); // true
System.out.println(c.equals(p)); // false

比较以下模式;

  • 0.0.0
  • 0-0-0
  • 0/0/0

但它也匹配

  • 0.0-0

我不想要。那么有没有办法匹配已匹配的序列?

 0[\.\-/]0[\.\-/]0

3 个答案:

答案 0 :(得分:1)

0([./-])0\\1(0)

您必须使用group,然后backreference使用\1。请参阅演示。

https://regex101.com/r/mG8kZ9/3

答案 1 :(得分:1)

是的,正如你的头衔完美地说:群组。也称为捕获。普通括号将捕获子匹配;反斜杠带数字将按顺序引用捕获。

0([\.\-/])0\{1}0

0([\.\-/])0\1[0]

(因为\10是其他东西,所以我们需要使用替代语法或正确分隔它们)。 \1(或\{1})指的是第一个打开的普通括号(即(?:...),不是(?=...),只是(...))之间的内容及其匹配的结束之一。

答案 2 :(得分:0)

您可以尝试使用以下群组:     (0.0.0)|(0/0/0)|(0-0-0)