正则表达式,匹配连续两次或多次连续两次或更多次具有相同单词的任何输入行。假设有连续 单词之间有一个空格perl正则表达式匹配重复单词
if($line!~m/(\b(\w+)\b\s){2,}/{print"No match\n";}
{ print "$`"; #print out first part of string
print "<$&>"; #highlight the matching part
print "$'"; #print out the rest
}
这是最好的,我得到了这么远,但也有一些是错误的 纠正我,如果我错了,
\b
开始用字边界
(\w+)
后跟一个单词或多词
\b
以单词边界结尾
\s
一个空格
{2,}
检查,如果这件事情重复2次以上
有什么错我的表情
你介意给我解释一下这个表达吗?我不太明白第二部分 – user3422317
第二部分以'\ 1'开头,它是对正则表达式中第一个捕获组(包含在(()中的东西)的引用。这意味着它告诉正则表达式“记住”它用'(\ w)'找到的内容,然后在'\ 1'处再次找到它。之后是一个非捕获组(使用'(?:)')查找正常空间或字符串的结尾。整个模式的后半部分被自己的捕获组所包围,这个捕获组可以用'+'作为整体进行量化(如果它不在一个组中,那么'+'只适用于'(?:| $)'。 – CAustin