由特定字符组成的单词的正则表达式

标签 regex

我正在寻找一个正则表达式来匹配由特定字符组成的单词而不重复任何字符:例如,对于 a b c 和 d,如何指定一个正则表达式来匹配这些字符串:

bdca(匹配)
亚行(匹配)
abcg(失败)
aab(失败)
我试过 ^[abcd]{1,4}$ 但它接受重复的字符(最后一个例子)。

请任何帮助?

最佳答案

您可以基于负前瞻使用此正则表达式:

^(?:([abcd])(?!.*\1)){1,4}$

RegEx Demo

分手:
^            Line start
(?:          Start non-capturing group
  ([abcd])   Match a or b or c or d and group it 
  (?!.*\1)   Negative lookahead to fail the match if same grouped char is ahead
){1,4}       1 to 4 occurrences of non-capturing group
$            Line end

关于由特定字符组成的单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046756/

相关文章:

c# - 数字列表作为 specflow 测试步骤中的参数

javascript - 反转字符串而不影响任何特殊字符

regex - 找不到正确的正则表达式模式

Python 使用正则表达式从 Html 中选取文本

python - 使用 python 正则表达式从文本中提取单词

javascript - 如何在没有连字符的情况下让 jQuery UI 自动完成工作

JavaScript.Replace 在 HTML 标签外用美元符号 ($) 包裹的内容

javascript - 如果将正则表达式传递给 "RegExp"构造函数会发生什么?

java - 如何用&替换\u0026?

c# - 字母数字单词的正则表达式,长度必须为 6 个字符