从一组字符中精确匹配其中一个

SDe*_*kov 5 regex

我试图匹配一组特定的字符,但每个只有1个.

例如,如果该集合是[abcd],我想以任何顺序匹配包含这些确切字符的字符串.

abcd  - true
bcad  - true
abc   - false (need all characters)
abbd  - false
abcdd - false
Run Code Online (Sandbox Code Playgroud)

据我所知,目前还没有简单的方法可以通过RegEx实现这一目标,但没有答案足够确凿.

bob*_*ble 8

我会考虑捕获并使用前瞻来检查相同的角色是否未领先.

\b(?:([abcd])(?!\w*?\1)){4}\b
Run Code Online (Sandbox Code Playgroud)
  • (?:打开一个非捕获组进行重复
  • \b匹配单词边界
  • ([abcd]) 抓住其中一个 [abcd]
  • (?!\w*?\1)检查捕获的角色是否\w在两者之间没有任何数量
  • {4}\b 直到另一个字边界4次

请参阅regex101上的演示   (仅适用于您的正则表达式中的前瞻)