我有一个变量被赋予这样的值:
vm.WordType = phrase.WordType;
其中短语.WordType的值可以是这样的:
"Godan verb with ru ending, Transitive Verb"
,我想将其更改为
"Godan v with ru end, Transitive v"
我可以使用Regex例如用v代替动词,但是有一种方法可以使用Regex进行更多的替换,例如用“ end”替换“ end”还是我必须以某种方式将多个Regex和使用临时变量?
vm.WordType = Regex.Replace(phrase.WordType, "verb", "v", RegexOptions.IgnoreCase);
答案 0 :(得分:1)
您当然可以打两次Regex.Replace
-第一次替换“动词”,第二次替换“结束”。
如果您不喜欢这样做,可以在一个正则表达式中执行以下操作:
Regex.Replace("Godan verb with ru ending, Transitive Verb", "(v)erb|(end)ing", "$1$2", RegexOptions.IgnoreCase)
我在这里使用的正则表达式是:
(v)erb|(end)ing
它匹配“动词”并将“ v”放入组1,或者匹配“ end”并将“ end”放入组2。
替换为$1$2
,表示组1和组2。
假设您还想用“ trans”替换“ transitive”,则可以轻松地将正则表达式更改为:
(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)