我目前正用它来找出我的尾巴词
**(?=\b\w{5}\b)\b\w*err\w*\b**
但是我需要一个正则表达式,它将使表达式与表达式的匹配次数超过三次/五次并且是非顺序的。
有什么建议吗?
预先感谢
我没有任何示例数据,因为我拥有的是日志文件。
2018-07-24 10:03:20,610调试[线程3]:[错误]另一个销毁操作刚刚发生
然后是几行...
然后再显示另一则[ERROR]消息
因此,我的搜索将查找ERROR,而Wintail / Notepad ++中的突出显示将突出显示Error并仅在日志超过5条错误消息时才提醒我。
答案 0 :(得分:0)
由于未提供示例数据和示例字符串,因此我将提供一个具体示例,其中在同一输入字符串中搜索字符串str
中的3至5个匹配项。
$String = "str foisdf str wifdoidsfstreoijdsf";
if($String =~ /(str)(.+?\1){2,4}/)
{
print "Found";
}
在$ String中搜索str
。第一个捕获组(str)
将捕获\ 1中的文本str
,第二个捕获组(.+?\1{2,4})
将匹配至少1个字符,然后再与str
匹配。
重复2-4次。由于str
已在正则表达式中找到一次,因此总匹配次数将为3-5次。
在我的PC上进行了测试和测试,并且可以正常工作。如果您需要非固定文本str
,请尝试用正则表达式代替str
。