По моему опыту .NET поддерживает те же функции, что и регулярные выражения Perl, но синтаксис гораздо более многословен, поэтому для его освоения требуется немного.
C # не поддерживает концепцию неявных переменных, поэтому вы всегда должны указывать как входную строку, так и шаблон соответствия. Другими словами, это короткий путь, который отсутствует в .NET, а не явное соответствие через = ~ и! ~.
Regex.Match делает то же самое, что и = ~, если вы просто хотите найти совпадения. Если вы хотите сопоставить и заменить, вы должны использовать метод Replace. Для оператора! ~ Вам просто нужно использовать! и соответствующий метод Regex.
Требуется немного больше печатать, но вы можете получить эффект, который вы ищете.