我有一个仅匹配英文字母的正则表达式,即[a-zA-Z]字符类。
有没有内置的正则表达式?我的意思是类似\s或\w。
我知道正则表达式包可以识别比正则语言更广泛的语言,但是在Python 正则表达式中使用递归正则表达式来查找文本字符串中的算术表达式让我想知道是否可以使用正则表达式识别任何上下文无关语言,并且如果没有,有人可以提供一个反例吗?
给定两种非常规语言,它们的联合是正规的吗?
另外,为什么 L = L 1?L 2 = {a i b j | i,j >= 0} L 1 = {a i b j | 的并集 i >= j} 和 L 2 = {a i b j | 我<j}?
那么,L 1 = {a i b j |的并集是什么?i > j} 并且 L 2 = {a i b j | 我<j}?
我正在复习关于计算理论的课程的一些注释,我有点坚持展示以下声明,我希望有人可以帮我解释一下:)
让A成为常规语言.语言B = {ab | A中存在a和b中不存在a*}为什么B是常规语言?
有些观点对我来说很明显.如果b只是一个常量字符串,这是微不足道的.由于我们知道a中的a和b是字符串,因此常规语言在union下关闭,因此联合接受这两个字符串的语言显然是常规的.但是,我不确定b是不变的.也许是,如果是的话,那么这不是一个真正的问题.我很难理解它.谢谢!
我提前为我的原始英语道歉; 我会尽力避免语法错误等.
两个星期前,我决定更新我对Scheme(以及它的启发)的了解,同时实现我手中的一些数学材料,特别是我所注册的自动机理论和计算课程的常规语言.
到目前为止,我一直把字母表作为符号列表而不是代表
我没经验,想知道你对这个特殊选择的看法.是否为某些特定任务保留了符号,这是因为我滥用了它们?对此我发表任何评论都非常感激,因为我正在寻求指导.
在进一步的范围内,还将有时间在字母表上实现所有可能的单词集,这是无限的.我正在考虑通过允许的单词的最大大小来限制集合.再说一遍,这是一个很好的做法,还是应该代替流?我觉得流是一种更好的方法,但我还没有学到它们,所以我真的不知道使用它们的含义.
无论如何,欢迎提出任何建议或评论.我非常感谢您花时间阅读我的疑惑.周末愉快!
根据我的教科书,L1 = A* - L1的补语是常规语言,只要L1是常规语言.
A*不包括Context Free语言,Context Sensitive语言和Recursively Enumerable语言吗?A*-L1也包括所有这些,不是吗?怎么能这么规律呢?
在有限状态机的表示下,我理解为什么补码仍然是常规语言.但是,我无法理解它背后的理论.
另外,A* - L1 = A*交叉补码(L1).是不是用补语定义的一个补语定义了一个补语?我真的不明白这是如何有效的.
谢谢.
computer-science discrete-mathematics regular-language formal-languages
我在某处读到{(a ^ p)(b ^ q):p,Q属于N}是一种常规语言.但是,我不认为这是正确的.这可以使用泵浦引理来证明.只是想验证我的解决方案是否正确
让y成为ab.因此,x(y ^ n)z不属于L,因为在n> = 1之前将存在一些b.但是,表达式不允许这样做.因此,(a ^ p)(b ^ q)不是RL
给定L1和L2(不规则)上下文无关语言 - L1 U L2是否可能是常规的?
我知道这是可能的,但我无法找到一个显示的例子.很想获得一些帮助.
我在下面写了正则表达式,但我遇到了一个问题:
^[^\.]*[a-zA-Z]+$
Run Code Online (Sandbox Code Playgroud)
按照上面的正则表达式,df45543是无效的,但我想允许这样的字符串.只有一个字母字符是必填字符,不允许使用点.允许所有其他字符.
我在ANTLR语法中有2个简单的词法分析器规则:
fragment Attrs : '.' ARCH;
fragment ARCH : 'IA32' | 'X64' | 'IPF' | 'EBC' | 'common';
Run Code Online (Sandbox Code Playgroud)
使用ANTLR4.7生成的ATN如下所示:
我searhed约ATN一定的参考,比如这一个。
很漂亮,但我不明白: