匹配任何句子但避免字符重复的正则表达式
A Regex to match any sentence but avoiding character repetition
我正在寻求帮助来创建一个正则表达式来验证满足这 4 个条件的字符串:
- 字符串必须包含白色space.
- 字符串必须以 full-stop/period.
结尾
- 字符串必须至少包含 15 个字符。
- 字符串不得包含 3 个或更多字符的重复。 这是我特别纠结的部分。
例如:
通过
- 一二三四。
失败
- OO一二三四。
- 一二四。
- 一二三四
- 一二三。
- 一二三四。
如果可能的话,您能否解释一下正则表达式是如何构建的,以便让我更好地了解将来如何构建它们?
这是我到目前为止尝试过的方法,
^(.*?={15,})(\.\Z)$
但我担心它还没有关闭,请帮忙。
您可以使用这个正则表达式:
^(?=\S*\s)(?!.*?(.){2}).{14,}\.$
RegEx Demo
解释:
(?=\S*\s)
- 前瞻以确保至少有一个空格
(?!.*?(.){2})
- Negative Lookahead 以确保没有 3 个连续字符的情况
.{14,}
确保至少有 14 个字符(第 15 个字符是最后一个点)
\.$
以确保点始终是最后一个字符
我正在寻求帮助来创建一个正则表达式来验证满足这 4 个条件的字符串:
- 字符串必须包含白色space.
- 字符串必须以 full-stop/period. 结尾
- 字符串必须至少包含 15 个字符。
- 字符串不得包含 3 个或更多字符的重复。 这是我特别纠结的部分。
例如:
通过
- 一二三四。
失败
- OO一二三四。
- 一二四。
- 一二三四
- 一二三。
- 一二三四。
如果可能的话,您能否解释一下正则表达式是如何构建的,以便让我更好地了解将来如何构建它们?
这是我到目前为止尝试过的方法,
^(.*?={15,})(\.\Z)$
但我担心它还没有关闭,请帮忙。
您可以使用这个正则表达式:
^(?=\S*\s)(?!.*?(.){2}).{14,}\.$
RegEx Demo
解释:
(?=\S*\s)
- 前瞻以确保至少有一个空格(?!.*?(.){2})
- Negative Lookahead 以确保没有 3 个连续字符的情况.{14,}
确保至少有 14 个字符(第 15 个字符是最后一个点)\.$
以确保点始终是最后一个字符