1

次の文字列があるとします。

var inputStr="AAAA AAAAAAAA AAA AAAAA";

(ここでの仮定は、文字列内の各 'A...' シーケンスのサイズがわからないということです。)

その文字列のすべての「A...」シーケンスから2つの「A」文字を減らす簡単な方法が必要です

次のようなもの:

var result=Regex.Replace(inputStr,...);

この例の結果は次のようになります: "AA AAAAAA A AAA")

ありがとう...

アップデート:

すべての返信に感謝します。

この質問をより一般的にしたいと思います。

例 2:

var inputStr="bbbAAAAC1AAAAAAAA AAA AAAAArrr"

結果は次のようになります。

"bbbAAC1AAAAAA A AAArrr"

4

5 に答える 5

2

試す:

var result = Regex.Replace(inputStr, "(A*)AA", "$1");
于 2013-10-11T10:59:15.393 に答える
1

すべての「単語」がAs であることがわかっている場合は、次の置換を使用できます。

var result=Regex.Replace(inputStr,@"AA\b","");

正規表現置換の regex101 デモ


編集によると、より一般的なパターンは次のようになります。

var result=Regex.Replace(inputStr,@"AA(?!A)","");

正規表現101のデモ

于 2013-10-11T10:58:51.200 に答える
0

正規表現ではありませんが、動作します

String.Join(" ", inputStr.Split().Select(x => x.Substring(0, x.Length - 2)).ToArray());
于 2013-10-11T10:53:09.233 に答える
0

本当に必要ではありませんが、正規表現を使用します。

var result=Regex.Replace(inputStr,@"(?i)aa","AA");

(?i) は、すべてのケースの a をチェックするようにします。

于 2013-10-11T10:53:33.193 に答える