Как перевести код C# в регулярные выражения

Есть код который проверяет строку на то, что в ней есть слова Test1, Test2, но нет слова Test3, как его можно перевести в Regex

void Check(string word)
{
   return str.IndexOf(word) != -1;
}

void TestCheck()
{
   if (Check("Test1") && Check("Test2") && !Check("Test3"))
   {
   }
}

Хочу переделать на вот это:

void TestCheck()
{
   if (new Regex("Тут паттерн, который загружался из файла, а в качестве стандартного паттерна использовался бы код выше, но нужно перевести его в регулярное выражение").IsMath(str))
   {
   }
}

Ответы (1 шт):

Автор решения: dIm0n

Вот так вот:

^(?=.*Test1)(?=.*Test2)(?!.*Test3).*$

Тест https://regexr.com/5abet

Test1 bmtrmobmt124 Test2 ok

Test1 omwbtombwomo false

Test1 ombtromormtbo Test false

Test1 owrmobmowbmro Test2 brmtobro Test3 false

Test1Test2Test4

→ Ссылка