【发布时间】:2015-01-29 12:17:06
【问题描述】:
只使用括号和 * 符号,我想到的一个例子是
((a|b)(bb*))*
但我可以有一个字符串,例如最后一个字母是 a 的 abba,它不包含在这个...有什么想法吗?
【问题讨论】:
-
你是说这个
^((a|b)(bb*))*$吗?
标签: regex
只使用括号和 * 符号,我想到的一个例子是
((a|b)(bb*))*
但我可以有一个字符串,例如最后一个字母是 a 的 abba,它不包含在这个...有什么想法吗?
【问题讨论】:
^((a|b)(bb*))*$ 吗?
标签: regex
这是 DFA:
Use the method described here 推导和求解 R1(初始状态)的方程:
R1 = bR1 + aR2 + λ
R2 = bR1 + λ
将 R2 替换为 R1:
R1 = bR1 + abR1 + a + λ
应用雅顿定理:
R1 = (b + ab)*(a + λ)
剩下的就是稍微改变一下语法:
(b|ab)*(a|)
这可以重写为 Perl 语法中的正则表达式进行测试:
^(a?b)*a?$
【讨论】: