问题标签 [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 回答
56 浏览

regex - 正则表达式只允许星号(*)一次并最终

我只想传递这样的字符串:

我不想传递这样的字符串:

星号必须在最后且仅出现一次。

使用正则表达式,\*我得到所有星号,但我不知道我是如何指定的。我不太擅长正则表达式。

0 投票
1 回答
258 浏览

dfa - 用于 Kleene 星操作的 DFA

对于语言 L*,DFA 拥有的最多状态数是多少?是否可以在这里定义最坏的情况?

0 投票
1 回答
57 浏览

regex - 使用带有重复组的 PCRE2 正则表达式来查找电子邮件地址

我需要找到所有包含任意数量字母数字单词的电子邮件地址,并用句点分隔。为了测试正则表达式,我正在使用网站https://regex101.com/

有效电子邮件地址的结构是word1.word2.wordN@word1.word2.wordN.word.

正则表达式/[a-zA-Z0-9.]+@[a-zA-Z0-9.]+.[a-zA-Z0-9]+/gm查找文档字符串中包含的所有电子邮件地址,但也包含无效地址,例如........@....com,如果存在。

我尝试使用圆括号和 Kleene 星号对重复部分进行分组,但这会导致正则表达式引擎崩溃。

无效的正则表达式:

/([a-zA-Z0-9]+.?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+.?)*[a-zA-Z0-9]+.[a-zA-Z0-9]+/gm

尽管有很多关于正则表达式组的帖子,但我无法找到解释,为什么正则表达式引擎会失败。似乎引擎在试图找到匹配项时卡住了。

我怎样才能避免这个问题,正确的解决方案是什么?

0 投票
1 回答
31 浏览

regular-language - 在 Kleene 明星手术中订购?

我在语言上看到的每个使用 Kleene 星号操作的示例都显示了扩展顺序,所以我想知道,Kleene 星号操作是否需要在语言中进行排序?

例如,给定语言 L = {a, b}

我们知道 L* = {e, a, b, aa, ab, bb, aaa, aab, abb, ...}(其中 e = epsilon)

但是像 ba、bba、baa 这样的元素呢?

我知道这可能是一个简单的问题,我可能在这里遗漏了一些东西。