regex - 关于 Kleene 星的困惑

标签 regex automata dfa

我一直在努力理解关于关闭两个联合表达式的一个关键属性。基本上我需要知道 Kleene star 是如何工作的。

I.E 如果正则表达式 R = (0+1)* 表达式的计算结果是否必须类似于 000111/01/00001111,或者我们是否可以有不等量的 0 和 1,例如作为 0011111/000001/111111/0000?

最佳答案

0 和 1 的数量可以不相等;您甚至可以按任何顺序使用 0 和 1! a*表示“零个或多个 a s,其中每个 a 都是独立评估的”;因此,在匹配 (0+1)* 的字符串中, 每个字符都可以匹配(0+1)不考虑字符串中的其他字符如何匹配它。

考虑模式 (0+1)(0+1) ;它匹配字符串 00 , 01 , 10 , 和 11 .如您所见,0 和 1 不必等量出现,也不必以任何特定顺序出现。 Kleene star 将其扩展到任何长度的字符串;毕竟,(0+1)*只是意味着 <empty>+(0+1)+(0+1)(0+1)+(0+1)(0+1)(0+1)+ ... .

关于regex - 关于 Kleene 星的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43353912/

相关文章:

algorithm - 寻找 DFA 结构的补集

regular-language - 证明以下在 {a,b} 上的集合是正则的

java - 将 DFA 实现为链表的算法

javascript - 如何有选择地用 HTML 替换文本?

python - 相似字符串的正则表达式

python - 将某种 XML/Json 文件编译成 Graphiz/有限状态自动机。有什么建议么?

automata - PDA 接受包含 a 多于 b 的字符串语言

javascript - 我需要提取字符串中数字的前 6 位和后 4 位数字,并使用正则表达式删除前导零

jquery 中 EIN 号和 SSN 号格式的正则表达式

automata - 以下 CFL 和非 CFL 的并集是 CFL 本身吗?