我使用一些正则表达式来搜索文本中的单词而不使用java.util的Pattern和Matcher类来运行正则表达式。我正在寻找一个正则表达式,在同一行字符上找到至少五次重复4次的完整单词。
例如,此行中的“return”一词:右侧返回,左侧返回,您必须再次返回。
我知道如何找到一个至少5个字符的单词\ b \ w {5} \ b但是其余的时间我都会卡住。
谢谢你的帮助
答案 0 :(得分:4)
您可以使用这样的正则表达式。
(\\b\\w{5}\\b)(?:.*?\\1){4}
注意:我上面使用了非捕获组,所以如果您需要更改重复次数,可以使用。
说明:
( # group and capture to \1:
\b # the boundary between a word char (\w) and not a word char
\w{5} # word characters (a-z, A-Z, 0-9, _) (5 times)
\b # the boundary between a word char (\w) and not a word char
) # end of \1
(?: # group, but do not capture (4 times):
.*? # any character except \n (0 or more times)
\1 # what was matched by capture \1
){4} # end of grouping