匹配任何句子但避免字符重复的正则表达式

A Regex to match any sentence but avoiding character repetition

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

  1. 字符串必须包含白色space.
  2. 字符串必须以 full-stop/period.
  3. 结尾
  4. 字符串必须至少包含 15 个字符。
  5. 字符串不得包含 3 个或更多字符的重复。 这是我特别纠结的部分。

例如:

通过

失败

如果可能的话,您能否解释一下正则表达式是如何构建的,以便让我更好地了解将来如何构建它们?


这是我到目前为止尝试过的方法,

^(.*?={15,})(\.\Z)$

但我担心它还没有关闭,请帮忙。

您可以使用这个正则表达式:

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

RegEx Demo

解释:

  • (?=\S*\s) - 前瞻以确保至少有一个空格
  • (?!.*?(.){2}) - Negative Lookahead 以确保没有 3 个连续字符的情况
  • .{14,} 确保至少有 14 个字符(第 15 个字符是最后一个点)
  • \.$ 以确保点始终是最后一个字符