问题标签 [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 投票
2 回答
564 浏览

javascript - DNF 函数的模式(javascript 正则表达式)

我想验证看起来像这样的 DNF(析取范式)A*B+A'*C+C*D*E'。为此,我使用以下模式:

我已经在这个在线工具中使用 javascript test() 方法测试了这个模式:http: //www.pagecolumn.com/tool/regtest.htm它给了我预期的结果。

我尝试使用以下代码使用 javascript 测试模式:

问题是,我不明白,为什么标志(在这段代码中)变成“真”,它必须是“假”,导致dnf="A*3+A*B+CD".

我在在线测试仪中对此进行了测试,它说:没有匹配项,我认为是正确的。

0 投票
1 回答
887 浏览

bnf - [af]?lex 正则表达式的区别

我不知道该怎么做,而且我在网上没有找到关于如何执行这个操作的好资源[。]我正在尝试采用一个带注释的 EBNF 生产规则,它是两个正则表达式之间的差异并将其转换进入 a(na| f?)lex 语法规范规则[.] 问题是我看不到正常执行此操作的方法[.]{3} 有没有办法使用 Kleene 代数来执行此操作,就像您可以使用的方式一样与上下文无关语法中的交替空匹配[?]

0 投票
1 回答
1123 浏览

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

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

谢谢。

0 投票
1 回答
666 浏览

java - 如何使用 DFA 正则表达式匹配器实现正则表达式断言/环视(即 \b 样式字边界)

我想在基于 DFA 的正则表达式匹配器中实现“单词边界”匹配。有人能告诉我这是怎么做到的吗?

提供一些背景知识,我目前正在使用“dk.brics.automaton”库,但它不支持断言(例如\b,单词边界)。我需要使用基于 DFA 的引擎,因为我的主要目标实际上是确定正则表达式的等价性,而不是进行实际匹配。

此外,以下问题的答案似乎表明这是可能的: 基于 DFA 的正则表达式匹配 - 如何获取所有匹配项? 通过说

“同样,我们通过向模拟器添加带有特殊指令的 epsilon 转换来管理这一点。如果断言通过,则状态指针继续,否则将被丢弃。”

然而,我不太明白这意味着什么。是否暗示它只能通过查看其端点的特殊类型的 epsilon 转换来完成,并且只有在其端点满足断言时才能被遍历,还是可以通过以某种方式配置的“正常”epsilon 转换来完成?如果我需要这些“特殊”类型的 epsilon 转换,那么如何确定这些(即转换为标准 DFA)?

非常感谢任何关于如何实际实现这一点的描述的指针。

0 投票
5 回答
225 浏览

php - 正则表达式匹配未包含在另一个不同的特定字符串中的特定字符串

我需要一个正则表达式来匹配一个没有被另一个不同的特定字符串包围的字符串。例如,在以下情况下,它会将内容分成两组:1)第二个 {Switch} 之前的内容和 2)第二个 {Switch} 之后的内容。它与第一个 {Switch} 不匹配,因为它包含在 {my_string} 中。该字符串将始终如下所示(即{my_string}此处的任何内容{/my_string})

到目前为止,我已经得到了下面的内容,我知道这根本不是很接近:

我只是不确定如何将 [^] (不是运算符)与特定字符串与不同字符一起使用。

0 投票
3 回答
1886 浏览

regex - 纯英文特殊字符的正则表达式

我需要一个正则表达式来匹配a-zA-Z0-9空格和特殊字符,但只包括英文空格/特殊字符,而不包括法语或西班牙语等其他语言的字符。

谢谢。

0 投票
2 回答
169 浏览

php - 正则表达式:解析锚点中不包含 img 的链接

我正在尝试解析一个普通链接,但有时除了该链接之外,还有一个类似的链接,而不是文本包含图像。

我一直在使用这种模式:"#_blank\">(.*?)</a>#is,但这也与锚中包含图像的链接相匹配。

我怎么能只解析那些不包含图像的?

0 投票
4 回答
173 浏览

perl - Perl:匹配一个数组元素,然后将一个 PREVIOUS(5 个索引返回)数组元素复制到一个新数组

本质上,我要做的是搜索一个大文本文件以识别每个显示“未找到匹配项",并将匹配的标识符复制到一个新列表中。我对第一部分很好,但我似乎无法弄清楚如何将数组的元素精确地复制回 5 个索引(这是一个标识符)并将其复制到不同的数组。

我尝试过这样的事情,

有大量的 [-5] 变体,但没有一个起作用.. 我似乎找不到任何关于如何回溯引用并在满足匹配时获得前一个元素的文档。有人知道如何为此编码吗?

非常感谢您的宝贵时间。

安德鲁

0 投票
2 回答
911 浏览

regex - 我们可以使用 DFA 来解析 Context-Free Grammar 指定的正则语言并生成解析树吗?

众所周知,DFA 可用于验证常规语言中的字符串。

示例 1. L=ac(b)*bcb|ad(b)*bb。DFA 可以验证字符串“acbbbcb”是否正确。

此外,有时,常规语言可以用 CFG 表示。

示例 2。

  • S -> "a" A "b"
  • A -> "c" B "c" | “D b
  • B -> "b" B | “乙”

上述CFG生成的语言就是例1中的正则表达式。

这意味着,我们可以使用 DFA 来验证此 CFG 生成的(常规)字符串。但是,我们如何生成相应的解析树呢?

0 投票
1 回答
2420 浏览

regex - 如果我们知道一个CFG只生成正则语言,我们能得到对应的正则表达式吗?

众所周知,给定一个正则语法,我们有算法来获取它的正则表达式。

但是如果给定的语法是上下文无关的语法(但它只生成常规语言),比如

  • S->aAb
  • A->bB
  • B->cB|d

    是否有任何现有的算法可以得到一般的正则表达式?

    谢谢!</p>