単語の出現を任意の順序で見つける必要があるため、次のパターンを使用できます。
string pattern = @"^(?=.*\bMaster\b)(?=.*Language=""C#"").+$";
これは、肯定的なルックアラウンドを使用して と の存在をチェックしMaster
ますLanguage="C#"
。単語境界のメタ文字 を使用していることに注意してください\b
。これにより、「Master」が完全に一致することが保証されます。これにより、「MasterPage」で部分一致が発生しないことが保証されます。
例:
string[] inputs =
{
"Master Language=\"C#\" MasterPageFile=\"~/masterpages/Libraries.master\"", // true
"Language=\"C#\" MasterPageFile=\"~/masterpages/Libraries.master\" Master", // true
"Language=\"C#\" MasterPageFile=\"~/masterpages/Libraries.master\"" // false
};
string pattern = @"^(?=.*\bMaster\b)(?=.*Language=""C#"").+$";
foreach (var input in inputs)
{
Console.WriteLine(Regex.IsMatch(input, pattern));
}