如果我有两个词,例如“ga?abg”
我想删除第二个单词中的前两个字符,如果它们匹配“?a”并取出后面的“b”并将其附加到第一个单词?
我该怎么做?请帮忙
string five ="ga ?abg";
string T = Regex.Replace(five, "?a", " ");
但如何追加第一个“b”?
结果应该是“gab g”。
答案 0 :(得分:1)
我猜你想要这样的东西,虽然我不使用c#,所以语法可能是错误的。 (另外,你的描述很混乱,所以我可能没理解你想要的东西)
Regex.Replace(five, "([^ ]+) \\?a([^ ])", "$1$2")
其中:
答案 1 :(得分:0)
答案 2 :(得分:0)
这有什么特别的原因必须是Regex?
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
来做你想要的事。