「ga?abg」のように2つの単語がある場合
2番目の単語の最初の2文字が「?a」と一致する場合は削除し、「b」の後に取って最初の単語に追加しますか?
どうやってやるの?助けてください
string five ="ga ?abg";
string T = Regex.Replace(five, "?a", " ");
しかし、最初の「b」を追加する方法は?
結果は「gabg」になります。
私は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
。