C# 如何使用正则表达式替换特殊字符?

C# 如何使用正则表达式替换特殊字符?,c#,regex,special-characters,C#,Regex,Special Characters,如何使用正则表达式替换特殊字符? 所谓特殊,我指的是那些有时出现在文本中的符号字符 例如,在下面的文本中,我想删除每行开头的气泡 护照详情 Name as on passport Relationship Passport Number Date of Issue Expiry Date Place of Issue 问题已编辑:抱歉,行首的气泡不再可见。提交问题后,stackoverflow删除了该特殊字符 有人知道如何替换这些特殊字符吗?我不想替换像#、@或!这样的字符!。这些都是琐碎的,

如何使用正则表达式替换特殊字符? 所谓特殊,我指的是那些有时出现在文本中的符号字符

例如,在下面的文本中,我想删除每行开头的气泡

护照详情

Name as on passport
Relationship
Passport Number
Date of Issue
Expiry Date
Place of Issue
问题已编辑:抱歉,行首的气泡不再可见。提交问题后,stackoverflow删除了该特殊字符

有人知道如何替换这些特殊字符吗?我不想替换像#、@或!这样的字符!。这些都是琐碎的,可以用键盘输入

对不起,我不知道如何在我的问题中使用这些特殊字符。我将尝试解释。在word文件中,我们将项目符号放在文本之前。我想替换代表这些字符的字符。我有一些文本文件,其中包含的字符看起来像气泡

最后,我找到了解决办法。 这个正则表达式适合我


([^(A-Za-z0-9)+\r\n |\t |“|”| | | | | |:|/| | | |.|,|])

可以用此正则表达式查找所有“特殊”字符,然后用空格字符替换它们:

/[<special_characters_here>]/
/[^<allowed_characters_here>]/
/[]/
但是,通常最好使用白名单,从而提及所有允许的字符,并用空格字符替换所有不允许的字符:

/[<special_characters_here>]/
/[^<allowed_characters_here>]/
/[^]/
(这是在指定语言之前发布的。)

要在Perl中用空格替换非ascii字符

 $string =~ s/[^[:ascii:]]/ /g;

请参阅。
[^[:ascii:]
是一个与任何非ascii字符匹配的正则表达式。

您的意思是替换回车符和新行字符吗

如果这就是你想要的,这就可以了:

var source = "once\r\ntwice\r\nthrice";
var pattern = new Regex(@"\r\n");
var result = pattern.Replace(source, ",");
Assert.AreEqual("once,twice,thrice", result);

我没有足够的时间来充实一个完整的示例。但由于您使用的是.NET,因此您可以匹配任意数量的角色类:


选择要接受的内容并替换不等于该集的任何内容。

是否要替换或删除它们?我想用单个空格字符替换这些字符。您需要指定您使用的语言以及要接受的字符集。很抱歉,我再次忘记提述我使用的语言。我使用的是C#。那么您可能只需要ASCII字符就可以了。按照Kinopiko的建议去做(因为正则表达式在C#中应该是一样的)。但是有很多特殊字符,很难找到这些字符的ASCII码,然后将这些码插入正则表达式。有没有此类字符的类?您可以使用类似于提到的Kinopiko的内容。但是,我不能告诉您更多,因为我不知道是哪种类型的字符你想允许或禁止的字符…哦,谢谢Kinopiko。我将尝试在C#抱歉,Adam,我不想替换换行符或回车符。我不知道如何在我的问题中放置这些特殊字符。我将尝试解释。在word文件中,我们将项目符号放在文本之前。我想替换代表此类字符的字符我有一些文本文件,其中包含看起来像气泡的字符。