Regex 正则表达式确保四个字母中的一个只出现一次

Regex 正则表达式确保四个字母中的一个只出现一次,regex,Regex,我需要一个正则表达式来只允许以下字母:“uldr”,并且每个字母只能出现一次。它们出现的顺序并不重要,只是这些字母是允许的,它们不能重复。比如说 有效期: uldr u ld rdu 无效: uldrr uu ll dd drdd 到目前为止,这就是我所拥有的:[uldr]{1,4}但这允许字符重复。您的正则表达式[uldr]{1,4}只会限制您允许的字符和长度约束。此外,如果任何字符使用此负前瞻(?!*()..*\1)重复自身,则可以使用负前瞻来拒绝匹配,并且可以使用的修改正则表达式如下: ^

我需要一个正则表达式来只允许以下字母:“uldr”,并且每个字母只能出现一次。它们出现的顺序并不重要,只是这些字母是允许的,它们不能重复。比如说

有效期:

uldr

u

ld

rdu

无效:

uldrr

uu

ll

dd

drdd


到目前为止,这就是我所拥有的:
[uldr]{1,4}
但这允许字符重复。

您的正则表达式
[uldr]{1,4}
只会限制您允许的字符和长度约束。此外,如果任何字符使用此负前瞻
(?!*()..*\1)
重复自身,则可以使用负前瞻来拒绝匹配,并且可以使用的修改正则表达式如下:

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

更优化的正则表达式是这样的,但可读性稍差

^(?![uldr]*([uldr])[uldr]*\1)[uldr]{1,4}$

其他工具比正则表达式更适合此工作。你用什么语言?