这两个正则表达式之间有什么区别:(0 + 1)* vs(01)*

时间:2013-08-03 01:45:35

标签: regex

请举例说明(0+1)*(01)*之间以及(0+1)+(01)+之间的区别。

(0+1)+表示非空字符串(0 + 1),类似于(01)+。

1 个答案:

答案 0 :(得分:2)

(0+1)*
  • 表示一个或多个0的序列,后跟1。
  • 匹配0100010101
  • 匹配空字符串。
  • 10101011010不匹配。
(01)*
  • 表示“01”的序列。
  • 匹配010101
  • 匹配空字符串。
  • 不匹配,10010
(0+1)+ and (01)+

等同于其他人,除非他们至少需要一场比赛。因此,它们不匹配空字符串。

请注意,某些语言中的这些表达式不要求整个字符串。有些函数会隐式地将^添加到开头,将$隐含添加到结尾。大多数情况下,他们不会这样做,所以这些匹配foo 0101 bar