gpt4 book ai didi

regex - (a+b)* 和 (a*b*)* 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 00:21:44 25 4
gpt4 key购买 nike

我假设 Σ = {a, b}。
我想找出代表 Σ* 的 RE
(Σ* 表示字母 Σ 上所有可能的字符串的集合)

我想出了以下两个 REs(正则表达式)

(a+b)*
(a*b*)*

但是,我无法自己决定哪个 RE 是正确的,或者两者都是坏的。
所以,请告诉我正确的答案。

最佳答案

+运算符通常用于指示学术正则表达式中的联合( | ,“或”),而不是“一个或多个”,因为它通常在非学术设置(例如大多数正则表达式实现)中表示。

所以,a+b意味着 [ab]a|b , 因此 (a+b)*表示任何长度为 0 或更多的字符串,包含任意数量的 a s 和 b s 以任何顺序。

同样,(a*b*)*也表示任何长度为 0 或更多的字符串,包含任意数量的 a s 和 b s 以任何顺序。

这两种表达方式是表达同一种语言的不同方式。

关于regex - (a+b)* 和 (a*b*)* 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60106962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com