Конечно, вы могли бы просто позвонить Regex.Replace
2 раза - первый раз заменив "глагол", второй раз заменив "окончание".
Если вам это не нравится, вы можете сделать это водно единственное регулярное выражение, подобное этому:
Regex.Replace("Godan verb with ru ending, Transitive Verb", "(v)erb|(end)ing", "$1$2", RegexOptions.IgnoreCase)
Используемое здесь регулярное выражение:
(v)erb|(end)ing
Соответствует либо «глаголу» и помещает «v» в группу 1, либо соответствует »окончание "и помещает" конец "в группу 2.
Замена - $1$2
, что означает группу 1 и группу 2.
Допустим, вы также хотите заменить" переходный "на"trans ", вы можете легко изменить регулярное выражение на:
(v)erb|(end)ing|(trans)itive
и заменить на все три группы:
$1$2$3
Обратите внимание, что этот подход сохранит регистр, поэтому" Глагол "становится«V» и «глагол» становится «V».Если это нежелательно, вы можете передать MatchEvaluator
для преобразования их в нижний регистр:
Regex.Replace(
"Godan verb with ru ending, Transitive Verb",
"(v)erb|(end)ing",
x => string.Join("", x.Groups.Cast<Group>().Skip(1).Select(y => y.Value)).ToLowerInvariant(),
RegexOptions.IgnoreCase)