我正在寻找帮助来创建正则表达式来验证满足以下4个条件的字符串:

  • 字符串必须包含空格。
  • 字符串必须以句号/句号结尾。
  • 字符串必须至少包含15个字符。
  • 字符串不得包含重复的3个或更多字符。这是我特别努力的部分。

  • 例如:

    通过
  • 一二三四。

  • 失败
  • 第二个,第四个。
  • 一二五四。
  • 一二三四
  • 一二三。
  • Onetwo三四十四。

  • 如果可能的话,您能否解释一下正则表达式的构造方式,以便使我对以后如何构造它们有更好的了解?

    到目前为止,这是我尝试过的
    ^(.*?={15,})(\.\Z)$
    

    但我担心它甚至无法关闭,请帮忙。

    最佳答案

    您可以使用此正则表达式:

    ^(?=\S*\s)(?!.*?(.)\1{2}).{14,}\.$
    

    RegEx Demo

    说明:
  • (?=\S*\s)-前瞻以确保至少有一个空白
  • (?!.*?(.)\1{2})-负前瞻,以确保不存在连续3个字符的情况
  • .{14,}以确保至少有14个字符(第15个是最后一个点)
  • \.$以确保点始终是最后一个字符
  • 10-04 22:37
    查看更多