簡體   English   中英

正則表達式找到3個重復的單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM