これはトリックを行う必要があります。 「HHEY、HEY、HEY」とのマッチングを避けるために必要です。
(\w+)
:1つ以上の単語の文字に一致します。これは最初のカペプルグループです。
,
:文字カンマ。
\1
:最初に取り込まれたグループの逆参照。つまり、前に(\w+)
で一致したものと一致します。
,
:文字カンマ。
\1
:最初に取り込まれたグループの逆参照。
$
:行末。 「HEY、HEY、HEYY」とのマッチングを避けるために必要です。
出典: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
@varun? 3つの単語が2つのカンマで区切られています – Json
@Enigmativity私はそれを使用する必要がありますが、私はそこにこれを行うための他の方法があることを認識しています。しかし、要件は、正規表現を使用することです – Json