如何拒绝Java正则表达式中的重复字符

时间:2016-02-09 10:08:47

标签: java regex

我正在寻找Java正则表达式的帮助。

我的正则表达式应该只接受长度为5的字符串,字符只与[BDILMOP]匹配。

不允许重复的字符 - 例如。允许BDILM,但BDILL或BDLLL不允许。

请帮助 - 我是正则表达式的新手,所以非常感谢您可以提出的任何建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以使用这种基于正则表达式的负前瞻:

^(?!.*(.).*\1)[BDILMOP]{5}$

(?!.*(.).*\1)是否定前瞻,如果输入中有任何重复,则会使匹配失败。 (.)捕获组#1中的一个字母,\1是同一组的反向引用,从而检查重复。

RegEx Demo