Regex Perl正则表达式,其中一个单词按非顺序重复三次以上
我现在用这个来找出我在logtail中的单词Regex Perl正则表达式,其中一个单词按非顺序重复三次以上,regex,expression,word,Regex,Expression,Word,我现在用这个来找出我在logtail中的单词 **(?=\b\w{5}\b)\b\w*err\w*\b** 但是我需要一个正则表达式,它将匹配表达式三次/五次以上,并且是非顺序的 有什么建议吗 提前谢谢 我没有任何样本数据,因为我有的是日志文件 2018-07-24 10:03:20610调试[Thread-3]:[ERROR]另一个销毁操作刚刚发生 然后是一些台词 然后再次显示另一条[错误]消息 因此,我的搜索将查找错误,Wintail/Notepad++中的突出显示将突出显示错误并仅在日志
**(?=\b\w{5}\b)\b\w*err\w*\b**
但是我需要一个正则表达式,它将匹配表达式三次/五次以上,并且是非顺序的
有什么建议吗
提前谢谢
我没有任何样本数据,因为我有的是日志文件
2018-07-24 10:03:20610调试[Thread-3]:[ERROR]另一个销毁操作刚刚发生
然后是一些台词
然后再次显示另一条[错误]消息
因此,我的搜索将查找错误,Wintail/Notepad++中的突出显示将突出显示错误并仅在日志跨越5条或更多错误消息时提醒我。由于未提供示例数据和示例字符串,我将提供一个具体的示例,其中在同一输入字符串中搜索字符串
str
$String = "str foisdf str wifdoidsfstreoijdsf";
if($String =~ /(str)(.+?\1){2,4}/)
{
print "Found";
}
在这里,str
在$String中搜索。第一个捕获组(str)
将在\1中捕获文本str
,第二个捕获组(.+?\1{2,4})
将在与str
再次匹配之前至少匹配1个字符。
重复2到4次。由于在正则表达式中已找到一次
str
,因此总匹配次数将为3-5次。
已在我的电脑上试用并测试,正在运行。如果您需要一个非固定文本
str
,请尝试将其替换为正则表达式中的str
。能否将示例数据和预期输出添加到帖子中?亲爱的Matt,请阅读搜索词。它包含以“err”开头的单词“w*err”,w{5}表示5个字母的单词-error。在编辑文章之前,您的正则表达式是(?=\b\w{5}\b)\b\werr\w\b
。这与以err
开头的单词不匹配。请编辑帖子以添加您正在搜索的样本数据。是的,可能是在剪切粘贴时删除了“*”/可能是我犯了错误。亲爱的Arun,感谢您的回答,但这在一行搜索中不起作用。您提到“因为没有提供示例数据和字符串”,我的搜索本身就包含这个单词——它的“error”和“w{5}”表示5个字母的单词。它只突出显示一次。我需要它匹配5次。