C# 使用正则表达式删除特殊字符附近的相邻空格

C# 使用正则表达式删除特殊字符附近的相邻空格,c#,regex,string,C#,Regex,String,使用正则表达式要删除替换字符附近的相邻空格 replacementCharacter='-' 这个.\u adjacentSpace=new Regex($@“\s*([\{replacementCharacter}])\s*”; MatchCollection replaceCharacterMatch=this.\u adjacentSpace.Matches(extractedText); foreach(在replaceCharacterMatch中匹配replaceCharacter)

使用正则表达式要删除替换字符附近的相邻空格

replacementCharacter='-'
这个.\u adjacentSpace=new Regex($@“\s*([\{replacementCharacter}])\s*”;
MatchCollection replaceCharacterMatch=this.\u adjacentSpace.Matches(extractedText);
foreach(在replaceCharacterMatch中匹配replaceCharacter)
{
if(replaceCharacter.Success)
{
cleanedText=Extactedtext.Replace(replaceCharacter.Value,replaceCharacter.Value.Trim());
}
}
Extractedtext=-whi,-ch
cleanedtext=-whi,-ch
预期结果:cleanedtext=-whi,-ch

您可以使用

var Extactedtext=“-whi,-ch”;
var replacementCharacter=“-”;
var_adjacentSpace=newregex($@“\s*({Regex.Escape(replacementCharacter)})\s*);
var cleanedText=_adjacentSpace.Replace(Extactedtext,“$1”);
Console.WriteLine(cleanedText);//=>-哎呀,哎呀

注意

  • replacementCharacter
    是上述代码中的
    string
    类型
  • $@“\s*({Regex.Escape(replacementCharacter)})\s*”
    将创建一个类似于
    \s*-\s*
    的正则表达式,
    Regex.Escape()
    将正确地转义任何正则表达式特殊字符(如
    +
    )等),以便在正则表达式模式中使用,并且整个正则表达式只是匹配(并用捕获括号捕获到组1)用零个或多个空格括起的
    replacementCharacter
  • 无需使用
    Regex.Matches
    ,只要替换所有匹配项(如果有),这就是
    Regex.replace
    的工作原理
  • \u adjacentSpace
    是已编译的
    Regex
    对象,要替换,只需调用Regex对象实例的
    .replace()
    方法即可
  • 替换是对组1值的反向引用,即此处的
    -
    字符

如果您不知道,您可以在“提问”屏幕上向下滚动,查看问题发布时的预览。这样,您可以在发布问题之前查看问题可能存在的格式问题。