由于您需要以任何顺序查找单词的出现,您可以使用以下模式:
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));
}