[英]Regular expression to find 3 repeated words
我正在嘗試創建一個匹配相同單詞3次的正則表達式,它們用逗號分隔。 例如,一些輸入將是:
HEY,HEY,HEY - match
NO,NO,NO - match
HEY,HI,HEY - no match
HEY,H,Y - no match
HEY,NO,HEY - no match
我該怎么做呢? 我看過一些例子,但它們只對字符有好處,而不是單詞。
這應該做的伎倆:
^(\w+),\1,\1$
說明:
^
:行的開頭。 需要避免匹配“HHEY,HEY,HEY”。
(\\w+)
:匹配一個或多個單詞字符。 這是第一個被捕獲的小組。
,
:字符逗號。
\\1
:對第一個捕獲組的反向引用。 換句話說,匹配(\\w+)
之前匹配的任何內容。
,
:字符逗號。
\\1
:對第一個捕獲組的反向引用。
$
:行尾。 需要避免匹配“嘿,嘿,嘿”。
來源: https : //msdn.microsoft.com/en-us/library/az24scfc(v = vs.110).aspx#Anchor_5
用法示例
static void Main()
{
var threeWords = new Regex(@"^(\w+),\1,\1$");
var lines = new[]
{
"HEY,HEY,HEY",
"NO,NO,NO",
"HEY,HI,HEY",
"HEY,H,Y",
"HEY,NO,HEY",
"HHEY,HEY,HEY",
"HEY,HEY,HEYY",
};
foreach (var line in lines)
{
var isMatch = threeWords.IsMatch(line) ? "" : "no ";
Console.WriteLine($"{line} - {isMatch}match");
}
}
輸出:
HEY,HEY,HEY - match
NO,NO,NO - match
HEY,HI,HEY - no match
HEY,H,Y - no match
HEY,NO,HEY - no match
HHEY,HEY,HEY - no match
HEY,HEY,HEYY - no match
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.