【发布时间】:2019-08-27 04:40:11
【问题描述】:
我有几个关于正则表达式的问题。据我所知,您只能使用 * 表示字母数,但如果我想写 L={a^nb^n|n>=0} 我将如何在正则表达式中显示字母数相等。
一般来说,我将如何显示正则表达式中字母数量之间的任何关系?
【问题讨论】:
-
你不能。您描述的语言
L不是正则的,很容易用泵引理证明这一点:en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages 正则表达式能够检查奇偶校验(想想模算术)但不能检查任意子字符串长度。 -
谢谢你是对的。将语言 L1={0^n 1^k | n mod 3=k mod 3} 是正常的吗?我正在尝试为它找到一个正则表达式,但我无法确定它是否是正则
-
是的,这种语言是常规的。你可以这样表达:
(000)*(111)*|0(000)*1(111)*|00(000)*11(111)* -
非常感谢。我已经接近了这个表达式,但没有考虑在 ()* 中放一个字母 3 次
标签: computer-science regular-language