javascript - 正则表达式:任何顺序的特定单词

标签 javascript regex

我不擅长正则表达式,试图制作 2 个正则表达式。

正则表达式1:

All specified words in any order but nothing else. (repetition allowed).

正则表达式2:

All specified words in any order but nothing else. (repetition not allowed).

单词:

aaa, bbb, ccc

字符串:

aaa ccc bbb
aaa ccc
aaa bbb ddd ccc
bbb aaa bbb ccc

Regex1 将以上字符串计算为:

true -> all word present in any order
false -> bbb is missing
false -> unknown word 'ddd'
false -> repetition not allowed

Regex2 将以上字符串计算为:

true -> all word present in any order
false -> bbb is missing
false -> unknown word 'ddd'
true -> all word present in any order and repetition is allowed

我的尝试

/^(?=.*\baaa\b)(?=.*\bbbb\b)(?=.*\bccc\b).*$/

询问学习目的,所以请详细说明。

最佳答案

无重复 regex101

^(?:(aaa|bbb|ccc)(?!.*?\b\1) ?\b){3}$

并重复 regex101

^(?=.*?\baaa)(?=.*?\bbbb)(?=.*?\bccc)(?:(aaa|bbb|ccc) ?\b)+$

还有两个想法。右侧 regex101 处的正则表达式解释。

关于javascript - 正则表达式:任何顺序的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55116510/

相关文章:

如果符号之间没有空格,C 计数字程序就可以工作,为什么?

java - 对抓取 HTML 标签正则表达式模式感到困惑

javascript - 正则表达式需要包含加号

javascript - 交互式饼图 : Associate a click event with a slice of a pie chart

javascript - 如果另一个正在运行,jQuery 会阻止动画触发

javascript - 这段代码中传播函数的目的是什么?

regex - 使用正则表达式表达日期和时间的方法 : YYYY-MM-DD HH:MM:SS. XXX

javascript - 监控 {{values}} 上的更改以触发 DOM 指令操作时出现问题

javascript - Chrome 65 更改为在 Chrome 应用中自动下载 blob

python - 匹配键值对