我正在寻找Java正则表达式的帮助。
我的正则表达式应该只接受长度为5的字符串,字符只与[BDILMOP]匹配。
不允许重复的字符 - 例如。允许BDILM,但BDILL或BDLLL不允许。
请帮助 - 我是正则表达式的新手,所以非常感谢您可以提出的任何建议。
谢谢!
答案 0 :(得分:1)
你可以使用这种基于正则表达式的负前瞻:
^(?!.*(.).*\1)[BDILMOP]{5}$
(?!.*(.).*\1)
是否定前瞻,如果输入中有任何重复,则会使匹配失败。 (.)
捕获组#1中的一个字母,\1
是同一组的反向引用,从而检查重复。