问题标签 [kleene-star]

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.

0 投票
1 回答
467 浏览

php - Kleene 是编程界的明星。(a|b)* 和 a*b* 之间的区别?

(a|b)*和 和有什么不一样a*b*?您能否展示更多 Kleene 星形和图案的示例?我在 Google 中搜索了很多网站,但它返回的关于这个主题的结果很少。当我试图了解 PHP 正则表达式的工作原理时,我将不胜感激。

0 投票
1 回答
1123 浏览

concatenation - 如果一个正则语言只包含 Kleene 星,那么它有可能来自两个非常规语言的串联吗?

我想知道,给定一个只包含 Kleene 星号运算符(例如(ab)*)的常规语言 L,是否可以通过连接两种非常规语言来生成 L?我试图证明 L 只能由两种常规语言的连接生成。

谢谢。

0 投票
1 回答
1185 浏览

regex - 将点星正则表达式转换为 NFA

我正在将一组给定的正则表达式转换为一个 NFA,但我遇到了一些问题。我应该如何转换诸如“ab.*c”之类的正则表达式(表示匹配一个'a'、一个'b'、任意数量的字符,然后是一个'c')?

我的最终目标是将单个 NFA 转换为 DFA(为此我使用了子集构造算法)。

0 投票
3 回答
4862 浏览

algorithm - 带有克莱恩星的自动机

我正在学习自动机。你能帮我了解一下带 Kleene 闭包的自动机是如何工作的吗?假设我有字母 a、b、c,我需要找到以 Kleene 星号结尾的文本——比如 ab*bac——它将如何工作?

0 投票
2 回答
1327 浏览

linux - grep:kleene star(*) 什么时候应该匹配自己?

我正在学习grepatm,但我很难理解 kleene 星元字符的工作原理。手册页描述了*匹配前一个字符零次或多次。我正在使用一个名为test以下内​​容的文件

grep 'a*' test应该匹配零次或多次出现,a并且如解释的那样在输出中打印文件的每一行test。该文档进一步描述了要匹配元字符,例如*必须通过在它们前面加上反斜杠来进行转义\grep '*' test但是和的输出grep '\*' test是一样的。输出:*a 为什么*匹配自身而不在其前面加上\

0 投票
3 回答
3248 浏览

regex - 正则表达式:Kleene 星是否具有可分配性?

(aa)*和之间会有区别(a*a*)吗?

有分配属性吗?

0 投票
2 回答
1700 浏览

regex - 过渡中的歧义:如何在 NFA 中处理字符串?

我已经从给定的正则表达式制作了 DFA 以匹配测试字符串。在某些情况下.*会发生。(例如.*ab)。现在假设机器处于状态 1。在 DFA 中, .*指的是所有字符到自身的转换,以及从状态 1 到“a”的另一个转换。如果测试字符串包含“a”,那么转换可能是什么,因为从状态 1 开始,机器可以进入 DFA 中不可能的两个状态。

0 投票
5 回答
28953 浏览

regular-language - 无限的语言不能是规则的吗?什么是有限语言?

我在一本关于可计算性的书中读到了这一点:

(Kleene's Theorem) 一种语言是规则的当且仅当它可以通过应用联合、连接、重复有限次数这三个操作从有限语言中获得。

我正在与“有限的语言”作斗争。

考虑这种语言:L = a*

它不是有限的。它{0, a, aa, aaa, ...}显然是一个无限集(0=空字符串)。

所以它是一种无限的语言,对吧?也就是说,“无限集”意味着“无限语言”,对吧?

显然,a*是一种常规语言。它是一种无限的语言。因此,根据 Kleene 定理,它不可能是常规语言。矛盾。

我很困惑。我想我不知道“有限语言”是什么意思。

0 投票
2 回答
114 浏览

regex - 如何评估这个正则表达式?

我只是在学习正则表达式,所以我只是想确保我的理解是正确的。

01*表示 0 后跟 0 次或多次重复 1。
1* + 01*表示 0 次或多次重复 1 或 0 后跟 0 次或多次重复 1。

我是对的还是我遗漏了什么?谢谢。

0 投票
2 回答
1441 浏览

regex - 确定两种语言是否相等 [正则表达式]

准备考试并且正在经历这个问题:

判断 R1 表示的字符串集合是否是 R2 的子集?

我的尝试:由于代表相同的表达式,我试图证明它们是相同的 R1 ⊆ R2

我试图证明 R2 与 R1 相同:所以我尝试了这个,使用正则表达式等价定理:

((01 + ε)* + (10 + ε) ) = (01 + ε) + (10 + ε)*

现在我被卡住了,我正在考虑在这里应用关联规则并显示 (01 + ε)* + (10 + ε)* = (01 + 10)* + (ε + ε)* = (01 + 10) * // 我认为这一步可能是错误的

因此 R2 = R1

步骤: (01 + ε)* + (10 + ε)* = (01 + 10)* + (ε + ε)* = (01 + 10)*

我认为是错误的,我认为我应用了错误的结合律,当它上面有 * 时我不知道如何使用它。对此的任何帮助将不胜感激。请 :)