正则表达式查找至少具有X个字符且不超过Y个连续重复字符的单词

时间:2013-10-23 10:36:19

标签: regex

我有很多OCR文本,里面有很多不需要的文字。 手头的问题是找到至少包含3个字符的单词,但不会有超过3个相同字符的连续重复。

我已经得到两个不同的Regex表达式适用于两个不同的规则但不确定如何组合它们

这个匹配3个连续重复的单词:(当与下一个重复时,需要取消) (。*)\ 1 {2,}

这个匹配包含3个或更多字母字符的单词 \ b [a-zA-Z] {3,} \ b

我现在需要将这两个一起添加并制作一个表达式。 以下是一些例子

我想要匹配的单词

  • 杰克
  • 松弛
  • Traack
  • Maacka

我不想匹配的单词

  • Jac(不够长)
  • Slaaack(连续3次重复“A”)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用negative lookahead检测重复字符。您已经知道解决方案的其余部分: - )

/\b(?![a-z]*?([a-z])\1{2})[a-z]{3,}\b/i