【发布时间】:2013-10-23 04:58:11
【问题描述】:
(aa)* 和 (a*a*) 之间会有区别吗?
有分配属性吗?
【问题讨论】:
标签: regex kleene-star
(aa)* 和 (a*a*) 之间会有区别吗?
有分配属性吗?
【问题讨论】:
标签: regex kleene-star
Kleene 星不分发。 (ab)* 与 (a*b*) 非常不同。
在您的具体示例中,(aa)* 将匹配两个 as 的组(因此,它只匹配偶数个 as),而 (a*a*) 等效于 (a*) 并匹配任意序列as。 (在这种情况下,L((aa)*) 是L((a*a*)) 的真子集,但对于一般的正则表达式不一定如此)。
【讨论】:
(aa)* 组与整个 aaa 不匹配,所以是的,有区别,它只返回一组 2 个a。
但是(a*a*) 和(a*) 是一样的。
【讨论】:
是的,有区别。 (aa)* 将是 aa 的组,而 (a*a*) 将是 a's。
基本上,第一个短语只能是 a 的偶数,而在这种情况下,第二个则不是。
【讨论】: