regular-language相关内容
使用泵引理,我们可以很容易地证明语言L1 = {WcW^R|W ∈ {a,b}*}不是常规语言.(字母是{a,b,c};W^R代表反向串W) 然而,如果我们将字符 c 替换为 "x"(x ∈ {a,b}+),例如 L2 = {WxW^R|x,W∈{a,b}^+},那么L2是正则语言. 你能给我一些想法吗? 解决方案 如果我们用 x 替换字符 c,其中 (x ∈ {a,b}+
..
我已经安装了 nette/tokenizer https://packagist.org/packages/nette/tokenizer 在沙盒项目中使用标记化. “基本"规则定义 最基本的测试是使用他们在此处提供的示例:https://doc.nette.org/en/3.1/tokenizer#toc-string-tokenization 由这 3 条规则组成: $lang
..
我对此进行了一些谷歌搜索,但没有真正确定的弹出. 假设我有两种语言 A 和 B. A = { w 是 {a,b,c}* 的子集,使得 w 的倒数第二个字符是 b } B = { w 是 {b,d}* 的子集,使得最后一个字符是 b } 人们如何定义这一点?我认为字母表将是两者的结合,使其成为 {a,b,c,d} 但除此之外,我不知道如何对此进行 DFA. 如果有人能对
..
这是我画的 DFA- 正确吗? 我很困惑,因为 q4 状态对于相同的输入符号有 2 不同的转换,这违反了 DFA 的规则,但我想不出任何其他解决方案. 解决方案 您的 DFA 不正确. 您的 DFA 完全错误,所以我不发表评论 RE 的 DFA: 0(1 + 0)*0 + 1(1 + 0)*1 语言说明:如果字符串以0开头,则应该以0结尾,或者如果字符串以1开头它应该以
..
我有这个字符串: #1#http://test.ir:8080/srvSC.svc#1##2#http://test.ir:8081/srvSC.svc#2##3#http://test.ir:8082/srvSC.svc#3##4#http://test.ir:8083/srvSC.svc#4##5#http://test.ir:8084/srvSC.svc#5##6#http://test.
..
通常在我们的工作中,我们在 capture 或 match 操作中使用正则表达式. 但是,可以使用正则表达式 - 至少手动 - 生成与正则表达式匹配的合法句子.当然,有些正则表达式可以匹配无限长的句子,例如表达式.+. 我有一个问题,可以通过使用正则表达式语句生成算法来解决. 在伪代码中,它会这样操作: re = generate("foo(bar|baz)?", max_ma
..
我正在尝试理解语言级别的概念(常规、上下文无关、上下文敏感等). 我可以很容易地查到这一点,但我发现的所有解释都是一堆符号和关于集合的内容.我有两个问题: 您能否用文字描述什么是常规语言,以及这些语言有何不同? 人们从哪里学习理解这些东西?据我了解,它是形式数学?我在大学有几门课程使用了它,几乎没有人理解它,因为导师只是假设我们知道它.我在哪里可以学习它,为什么人们“期望"在这么
..
我正在尝试使用正则表达式匹配长度宽度和高度. 我有以下情况 Artikelgewicht3,7 KgProduktabmessungen60,4 x 46,5 x 42 cm或者Artikelgewicht3,7 KgProduktabmessungen60 x 46 x 42或者Artikelgewicht3,7 KgProduktabmessungen60 x 46 第二种情况可以搭
..
我正在尝试编写一个正则表达式来接受任何二进制字符串,唯一的标准是 0 的数量不是 3 的因数([0 的数量] % 3 != 0).如何实现? 解决方案 如果您的正则表达式风格支持 递归模式,你可以使用这个: ^(1*01*)(?1)?(?:(?1)(?1)(?1))*1*$ 如果不是,则将所有 (?1) 替换为 (1*01*) 说明: ^ : 字符串的开始( : 开始第 1 组
..
我本想在x时添加a-zA-ZáàâäãåçéèëëíîïïnóòôöõúùûüýÿæœÁÀÂÅÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝÜÝŸÆŒ,但我觉得这很丑陋.因此,我尝试 \ p {L} ,但它在JavaScript中不起作用. 有什么想法吗? 我的实际正则表达式: [A-ZA-ZáàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔ
..
字符串S ="3乘3加3 3 1" 我想得到两个字符串数组一个是{"multiply","add","add"}另一个是{"3","3","3",1} 我如何得到它?我尝试使用 字符串运算符[] = s.split("[0-9] +");字符串操作数[] = s.split(“(?? add | multiply)"); 但是,它不起作用. 解决方案 您可以使用Java
..
我在解决这种特殊语言的语法时遇到一些问题,希望您能提供帮助:语言是:Σ= {x,y,z}A = {w |w∈Σ^ ∗∧| w | _x mod 2> = | w | _y mod 2} 因为这是如此困难,所以我首先尝试将所有属性放在一个语法中,所以| w | _x mod 2> = | w | _y mod 2和w∈Σ^ ∗,但是没有得到像cacbcacb这样的所有组合等等 我得到的是
..
鉴于任意上下文无关的语法,我如何检查它是否描述了常规语言? 我不是在寻找考试“技巧".我正在寻找可以编写的万无一失的机械测试. 如果有帮助,这是我可能会收到的CFG示例.具体来说,请注意,答案必须比查找左或右递归复杂得多,因为存在另一种递归并不自动表示语法是不规则的. S:A B C D X答:A:B:b BB:C:c C cC:D:D d DD:dX:x YX:Y:y XY:
..
让我们说您有一种语言L,并且您想确定它是否与上下文无关.与常规语言相交的上下文无关语言是上下文无关的.足以证明L是上下文无关的吗? 含义 L相交P = T其中P是常规语言,T是上下文无关的.这是否意味着L是上下文无关的? 解决方案 否,您的声明不是是.请考虑以下反例: L = {0n1n2n | n > 0}, P = T = Ø.显然,我们有L ∩ P = L ∩ Ø
..
我需要为以下语言构造左线性和右线性语法吗? a) (0+1)*00(0+1)* b) 0*(1(0+1))* c) (((01+10)*11)*00)* 对于a)我有以下内容: Left-linear S --> B00 | S11 B --> B0|B1|011 Right-linear S --> 00B | 11S B --> 0B|1B|0|1 这是正确的吗?我
..
我不知道如何执行此操作,而且我没有在线上找到有关如何执行此操作的好资源[.]我正在尝试采用带注释的EBNF生产规则,该规则是两个正则表达式之间的区别并把它变成一个(na | f?)lex语法规范规则[.]问题是我看不到通常能做到这一点的方法[.] {3},有一种方法可以像克莱恩代数一样使用克莱恩代数来做到这一点.您可以在上下文无关的语法中使用带交替符的空匹配[?] 解决方案 EBNF生产规
..
如何证明以下语言是(不是)上下文无关的? n b m c {n + m} | n,m> = 0}是上下文无关的。有关证明,请参见 http://cg.scs.carleton.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf (pdf中为p102;文本中为p94) 证明很长,可以通过使用与PDA的等效性来证明它更短(例
..
我知道,要证明一种语言是非常规语言,可以使用泵激引理。我想我知道它是如何工作的,但是当涉及到上下文无关语法是(或者不是很规则)时,我遇到了很大的问题。 以下是我无法理解如何显示常规(或非常规)CFG的示例: i)S→NP VP ii)NP→DET N iii)VP→电视NP iv)N→NN v)N→AN vi)NP→玛丽|约翰 vii)DET→一个|他的| b
..
具体来说,我注意到正则表达式本身不是正则语言。因此,我无法使用正则表达式来解析给定的正则表达式。因为正则表达式本身的语言是上下文无关的,所以我需要使用解析器。 有没有办法以表示结果字符串可以表示正则表达式的方式 注意:我的问题不是关于是否有一个与当前regexe语法匹配的regexp,而是是否存在一个“表示形式”对于我们今天所知的正则表达式(可能不像我们今天所知道的那样整洁)可以使用正
..
我试图找到乔姆斯基提出的形式语法的四个层次(无限制,上下文相关,上下文无关,常规)的简单(即非正式)解释。 自从我学习形式语法以来已经有一个时代了,各种定义现在让我难以理解。需要明确的是,我不正在寻找随处可见的正式定义(例如,此处和此处-我可以在Google以及其他任何人身上使用Google,甚至可以是任何形式。取而代之的是,我希望找到的是简洁明了的解释,它们并没有为了完整性而牺牲清晰度。
..