如果我有两个词,例如“ga ?abg”
如果它们与“?a”匹配,我想删除第二个单词中的前两个字符并取后面的“b”并将其附加到第一个单词?
我怎样才能做到这一点?请帮忙
string five ="ga ?abg";
string T = Regex.Replace(five, "?a", " ");
但是如何附加第一个“b”?
结果应该是“gab g”。
我猜你想要这样的东西,虽然我不使用 c#,所以语法可能是错误的。(另外,你的描述很混乱,所以我可能不明白你想要什么)
Regex.Replace(five, "([^ ]+) \\?a([^ ])", "$1$2")
在哪里:
这必须是正则表达式有什么特别的原因吗?
string answer;
string[] split = five.Split(' ');
if (split.Length == 2 && split[0].Length > 0 && split[1].StartsWith("?a") && split[1].Length > 3)
{
answer = string.Format("{0}{1} {2}", split[0], split[1].Substring(2, 1), split[1].Substring(3));
}
else
{
answer = five;
}
或者,您可以使用MatchEvaluator Delegate,但这仍然需要自定义代码。我认为您无法通过简单的Regex.Replace
.