问题标签 [regular-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 正则表达式。定期还是不定期?
我只是想对这些表达式以及它们是不规则的还是规则的有第二个看法。
{0^n 1^m | n >= m >=0}
常规的
{0^n 1^m | n,m >=0}*
常规的
{0^n 0^n | n>=0}
不规律的
任何人都可以确认这是真的吗?
computer-science - 为什么正则语言的补语仍然是正则语言?
根据我的教科书,只要 L1 是正则语言,L1 = A* - L1 的补码就是正则语言。
A* 不是还包括上下文无关语言、上下文敏感语言和递归可枚举语言吗?A*-L1 也会包括所有这些,不是吗?那怎么能有规律呢?
在有限状态机的表示下,我理解为什么补语仍然是一种常规语言。但是,我无法理解其背后的理论。
此外, A* - L1 = A* 交集补码(L1) 。用补语定义的东西定义补语不是重言式吗?我真的不明白这怎么可能有效。
谢谢。
regex - 正则表达式练习
所以一些测试的结果必须是:
我的回答是:3*(11)*2*
但它没有通过一些测试......有人可以帮助我吗?
第二个练习是:
测试字符串:
我的解决方案是(12*)*
但它没有通过一些测试......请帮助我。
nlp - (a^p )(b^q) 是常规语言吗
我在某处读到 {(a^p)(b^q):p,Q 属于 N} 是一种常规语言。但是,我认为这是不正确的。这可以使用抽水引理来证明。只是想验证我的解决方案是否正确
让 y 成为 ab 。因此,x(y^n)z 不属于 L,因为对于 n>=1,在 a 之前会有一些 b。但是,表达式不允许这样做。因此,(a^p)(b^q) 不是 RL
regular-language - 是一种语言 L = {s ∈ (0 + 1)* | d(s) mod 5 =2 和 d(s) mod 7 !=4 } 常规?
在阅读一本书时,我有这个疑问。
它提到
L = {s ∈ (0+1)* | n0(s) mod 7 = n1(s) mod5 =0} 是常规的 其中 n0(s) = s 中 0 的数量,n1(s) = s 中 1 的数量
此外,它提到
L = {s ∈ (0 + 1)* | d(s) mod 5 =2 和 d(s) mod 7 !=4 } 不规则(甚至不是上下文无关的,但它是递归的)其中 d(s) = s 的十进制值(例如 d(101) = 5)
为什么会这样?是因为 DFA 没有内存来存储(记住)s 的十进制值吗?但在那种情况下,第一种语言怎么会是正规的呢?
java - 如何忽略文本中的值?
我有一个这样的字符串:
我怎么能忽略 QLPUB 的价值?实际上我想在 3000 行中检查这个字符串,但我想忽略 50。
有什么方法可以忽略它,例如使用 java 正则表达式或 %s 或 ...?
regular-language - 正则表达式和自动机
我正在通过阅读 Aho 的书来学习正则表达式。我不明白书中的两个陈述:
问题一:
我的问题为什么要+1
在正则表达式的末尾添加?应该1(0+1)*1
不够吧?
我也遇到以下问题:
问题乙:
仅包含 0 和 1 且最多有一个 1 的字符串集,如下所示
0*+0*10*
您能逐步解释解决方案是如何得出的吗?
regex - 匹配 25 个字符并以数字开头的正则表达式
我有一个文本字段,需要使用正则表达式进行验证。我的要求如下:
CCCCNNNNNN
或CCCCNNNNNNN
(模板)
1234ABCDEFG
或123-ABCDEFG
(示例字符串)
规则:
- 整个字符串最多 25 个字符
- 前四个字符 (CCCC) 必须是字母数字
- CCCC 正好是 4 个字符,可以是数字或数字
- CCCC 可以有一个破折号作为第 4 个字符
- NNNNNNNNNNNN 最多可包含 21 个字符且只能包含数字
例如AAAA
1234
A58-
是 CCCC 的有效字符串。
这是我的研究笔记:
- 我需要先匹配数字
- 我将需要
+
指定字符以匹配此模式 X 次 - 之后我需要匹配 8-9 个空格的字母
这里有一篇关于 RegEx 模式的精彩文章:
我的目标是将此 REGEX 模式应用于 WinForms 应用程序中的文本框掩码。
regular-language - 寻找常规语言的补语
你能帮我找到一种语言的补充,它以abab - (a|b)*abab (over an alphabet {a,b})
我想,补码必须包含所有不以 abab 结尾的字符串。在构建一个 DFA 以(a|b)*abab
补充
好的,单词不允许以 . 结尾abab
。末尾有's 和's的四个字母有 2 4种方式。好的,必须删除所以有 15 种组合。这是否意味着,补语是.(所有's 和's 的组合的联合,没有 's )?但还是一开始就保持不变吗?a
b
abab
(a|b)*
a
b
abab
(a|b)
请帮助我理解这一点。