Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Perl正则表达式,其中一个单词按非顺序重复三次以上_Regex_Expression_Word - Fatal编程技术网

Regex Perl正则表达式,其中一个单词按非顺序重复三次以上

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++中的突出显示将突出显示错误并仅在日志

我现在用这个来找出我在logtail中的单词

**(?=\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次。