正則表達式,匹配連續兩次或多次連續兩次或更多次具有相同單詞的任何輸入行。假設有連續 單詞之間有一個空格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