我需要正则表达式来匹配以下情况。
- 3个或更多连续的连续字符/数字;例如 123、abc、789、pqr 等。
- 3个或更多连续相同的字符/数字;例如 111、aaa、bbb、222 等。
原文由 sandy0093 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要正则表达式来匹配以下情况。
原文由 sandy0093 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.6k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
4 回答2.2k 阅读
3 回答982 阅读✓ 已解决
2 回答807 阅读✓ 已解决
2 回答1.4k 阅读
我认为您不能(轻松地)在第一种情况下使用正则表达式。第二种情况很简单:
Since
\\1
represents part matched by group1
this will match any sequence of three identical characters that are either within the rangea-z
or are digits (\d
)。更新
明确地说,您 可以 对第一种情况使用正则表达式。然而,该模式是如此费力和可笑地错综复杂,你最好不要这样做。特别是如果您想真正涵盖所有字母表。在那种情况下,您可能应该通过迭代 Unicode 字符集或类似字符的字符代码以编程方式生成模式,并为每三个连续字符生成分组。但是,您应该意识到,通过为模式匹配器生成如此大的决策树,行进性能必然会受到影响(
O(n)
其中n
是组的数量Unicode 字符集的大小减去 2)。