问题标签 [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.
regex - 正则表达式只允许星号(*)一次并最终
我只想传递这样的字符串:
我不想传递这样的字符串:
星号必须在最后且仅出现一次。
使用正则表达式,\*
我得到所有星号,但我不知道我是如何指定的。我不太擅长正则表达式。
dfa - 用于 Kleene 星操作的 DFA
对于语言 L*,DFA 拥有的最多状态数是多少?是否可以在这里定义最坏的情况?
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
尽管有很多关于正则表达式组的帖子,但我无法找到解释,为什么正则表达式引擎会失败。似乎引擎在试图找到匹配项时卡住了。
我怎样才能避免这个问题,正确的解决方案是什么?
regular-language - 在 Kleene 明星手术中订购?
我在语言上看到的每个使用 Kleene 星号操作的示例都显示了扩展顺序,所以我想知道,Kleene 星号操作是否需要在语言中进行排序?
例如,给定语言 L = {a, b}
我们知道 L* = {e, a, b, aa, ab, bb, aaa, aab, abb, ...}(其中 e = epsilon)
但是像 ba、bba、baa 这样的元素呢?
我知道这可能是一个简单的问题,我可能在这里遗漏了一些东西。