问题标签 [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.

0 投票
1 回答
715 浏览

compiler-construction - 普通语言?

我有一个编译器问题。

确定是否 {(ab)^n | n >= 0} 是常规语言吗?

但我可以画出它的 NFA。但是如果我使用抽引引理,我会得到一个矛盾的答案。

谁能帮我 ?

0 投票
2 回答
90 浏览

regex - 用英语描述 RE

我在过去的试卷中有以下问题: 在此处输入图像描述

我正在努力在必要的 15 个字限制内将它们的定义正式化。到目前为止,我有:

i) 包含零个或多个 a 或 b 或两者的空字符串或字符串集

ii) 以一个或多个 a 开头的字符串集合,除非前面有 b,然后是一个或多个 a,前面有零个或多个可能的 b。

我的定义看起来相当繁琐......我只是不想通过过度简化定义来丢失任何信息。

0 投票
2 回答
69 浏览

php - 如何使用正则表达式识别空格

我将如何扩展这个 preg_replace (在 PHP 中),使用正则表达式来替换空格也..

它用于根据页面标题生成页面永久链接。“关于我”将变成“关于我”。一切都很好,只是它还没有删除空间。

谢谢!

0 投票
2 回答
51587 浏览

syntax - 什么是常规语言?

我正在尝试理解语言级别的概念(常规、上下文无关、上下文相关等)。

我可以很容易地查到这个,但我找到的所有解释都是一堆符号和谈论集合。我有两个问题:

  1. 你能用语言描述什么是常规语言,以及这些语言有什么不同吗?

  2. 人们从哪里学会理解这些东西?据我了解,它是形式数学?我在大学有几门课程使用它,几乎没有人理解它,因为导师只是假设我们知道它。我在哪里可以学习它,为什么人们“期望”在这么多来源中知道它?好像教育有差距。

这是一个例子

属于该集合的任何语言都是字母表上的常规语言。

一种语言怎么能“超越”任何东西?

0 投票
2 回答
632 浏览

javascript - 用于解析 PING 命令提供的信息的 Javascript 正则表达式

我有一个在 ping 后获取输出的脚本,输出如下所示:

我首先尝试获取传输了多少数据包。所以我尝试了这个正则表达式: (\d+)*\spackets

基本上与“NUMBER 个数据包”相匹配,它似乎在这个网站上工作:http ://www.regular-expressions.info/javascriptexample.html但我无法复制它。

并且当使用正则表达式进行匹配时,它也会失败,如下所示:

有任何想法吗?

0 投票
2 回答
2855 浏览

regex - 正则表达式星号

也许我错过了一些东西,但是这个正则表达式有什么问题?

你能解释一下为什么/\d*/.exec(str);返回一个空字符串而不是“12345”。 *表示零个或多个匹配。

0 投票
1 回答
4917 浏览

context-free-grammar - 上下文无关语言的闭包性质和与常规语言的交集

上下文无关语言和常规语言的交集始终是上下文无关的,但上下文无关语言在集合交集下不封闭。如果所有常规语言都是上下文无关的(相反的情况并非总是如此),谁能解释为什么这两个定理都是正确的?

0 投票
1 回答
141 浏览

grammar - 是否可以证明 L 是正则语言?

L = {a^f(m) | m >= 1 }wheref: Z^+ -> Z^+是单调递增的,并遵守对于其中的所有元素n都有Z^+属于m这样Z^+f(m+1) - f(m) >= n

是否可以证明 L 是正则语言?

0 投票
1 回答
281 浏览

regex - 轻量级正则表达式优化

我有一个正则表达式,它是计算机程序的输出。它有类似的东西

毫无疑问,人类会写成

所以我想要一个可以进行简单转换的程序,使正则表达式更具可读性。到目前为止,我一直在使用快速脚本

降低了长度,但结果仍然包含像

应该简化为

我搜索了 CPAN 并找到了 Regexp::List、Regexp::Assemble 和 Regexp::Optimizer。前两个不适用,第三个有问题。首先,它不会通过测试,所以除非我force install Regexp::Optimizer在 cpan 中,否则我不能使用它。其次,即使我这样做了,它也会让表情窒息。


注意:除了 [regex] 之外,我还标记了此 [regular-language],因为 regexp 仅使用串联、交替和 Kleene 星号,因此它实际上是常规的。

0 投票
3 回答
181 浏览

java - 带组的 Java 正则表达式

我想替换所有出现的字符串,例如:

但是如何处理包含字符串而不是字符的组?

- 编辑:

例如给定字符串:

我想拥有

或更好,但它唯一的 replaceAll 参数