正则表达式 - 将 x{n} 替换为 x{n-2}

本文关键字:n-2 替换 正则表达式 | 更新日期: 2023-09-27 18:35:00

假设我有这个字符串:

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"

正则表达式 - 将 x{n} 替换为 x{n-2}

var result=Regex.Replace(inputStr,@"(A*)A{2}(?!A)","$1");

尝试:

var result = Regex.Replace(inputStr, "(A*)AA", "$1");

如果你知道所有的"单词"都是A s,你可以用这个替换:

var result=Regex.Replace(inputStr,@"AA'b","");
正则

表达式替换的正则表达式101演示


根据编辑,更一般的模式是:

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

正则表达式101演示

使用正则表达式,尽管您并不真正需要它。

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

(?i( 确保它检查所有情况的 a。

虽然不是正则表达式,但它可以工作

String.Join(" ", inputStr.Split().Select(x => x.Substring(0, x.Length - 2)).ToArray());