为什么1100用/(0 * 1(00)* 10 *)* /匹配?

时间:2019-05-23 22:34:05

标签: regex

我希望不是match。我可以看到11个匹配的方式:您只对整个RE进行一次,但内部没有零,因此您需要11,因为这不是可选的。现在,我们怎么才能从这个RE中得到00?

2 个答案:

答案 0 :(得分:2)

您匹配第一个1。然后(00)*不匹配任何内容,因此您仍然有1。然后匹配1,然后匹配零个或多个0。所以您有11,然后是0 *或匹配00。所以是1100。

  • 0 * 1匹配前1个。
  • (00)* 1与第二个1匹配。
  • 然后0 *匹配00

答案 1 :(得分:0)

(:第一个捕获组

0 *:字符0零次或多次

1:字符'1'

(:第二个捕获组

00:字符“ 00”

)*:组匹配零次或多次

1:字符'1'

0 *:char'0'匹配零或+

)*所有捕获组可以匹配零次或多次

所以有1100个匹配项