当前位置: 首页 > 知识库问答 >
问题:

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

严誉
2023-03-14

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

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

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

请帮助-我是新的正则表达式,所以会感谢任何建议,你可以扔我的方式。

谢谢

共有1个答案

吕鹏
2023-03-14

您可以使用这个基于负前瞻的正则表达式

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

<代码>(?!.*(.)*\1) 为负前瞻,如果输入中有任何重复,则匹配失败<代码>(.)捕获组#1中的一个字母,并且\ 1是同一组的反向引用,因此检查重复。

正则表达式演示

 类似资料:
  • 我的正则表达式是 当我在java中使用Pattern.complie()编译时,我得到了*非法重复字符* 我测试了这个正则表达式 当我编译这个时,它没有显示错误。 为什么会发生这种情况?

  • 如何在不包含连续子字符串baa的字母表{a,b,c}上表达正则表达式?

  • 我在JavaScript中使用正则表达式验证日期,但当我运行SonarQube进行代码分析时。它显示正则表达式是一个安全漏洞。 例1: 下面是正则表达式模式(链接到正则表达式的源代码)https://stackoverflow.com/a/15504877/13353721): 例2: 对于浮动值,我使用了下面的正则表达式 SonarQube抛出了相同的安全错误,我尝试了各种不同的正则表达式模式,

  • 问题内容: 谁能给我一个Java正则表达式来识别字符串中的重复字符?我只是在寻找立即重复的字符,它们可以是字母或数字。 例: abccde <-寻找此内容(立即重复c的内容) abcdce <-不是这个(c用另一个字符分隔) 问题答案: 尝试 在任何单词字符(字母,数字或下划线)和匹配无论是在第一组括号,一次或多次的比赛。因此,您可以匹配出现的任何一个单词字符,然后立即再次匹配一个或多个相同的单词

  • 关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑:

  • 本文向大家介绍Java中的正则表达式“ ^”(脱字符)元字符,包括了Java中的正则表达式“ ^”(脱字符)元字符的使用技巧和注意事项,需要的朋友参考一下 子表达式/元字符“ ^”与行的开头匹配。如果在正则表达式中使用此命令,则它将与输入字符串中其后的句子匹配。 例子1 输出结果 例子2 以下Java程序从用户接受5个字符串,并打印以数字开头的字符串。 输出结果