使用Regex c#用空字符串替换双引号

时间:2014-01-23 11:16:06

标签: c# regex

我有以下内容:

this.LocationCode = this.LocationCode.Replace(@"""", String.Empty);

但是我想用正则表达式代替。我已经使用了下一个代码块,但它对字符串没有任何作用。 (他们是分开的课程,但为了方便,我把它们放在一起)

public const string checkStringForDoubleQuotes = @"^[""]$";
Regex doubleQuotesPattern = new Regex(RegexChecks.checkStringForDoubleQuotes);
this.LocationCode = Regex.Replace(this.LocationCode, doubleQuotesPattern.ToString(), "");

谁能看到我哪里出错了? 当LocationCode出现时,它包含“K”23“。当我使用字符串替换它产生”K23“这是完美的,但正则表达方式只是保留值。

解决方案

在稍微修补一下后,我现在有了以下内容:

public const string checkStringForDoubleQuotes = @"["" ,]";
Regex doubleQuotesPattern = new Regex(RegexChecks.checkStringForDoubleQuotes )
this.LocationCode = doubleQuotesPattern.Replace(this.LocationCode, "");

这允许我在正则表达式字符串中添加更多标准(逗号),我希望该选项可以做,但意识到我没有在我的问题中添加该部分,对不起!这种方式对于项目是可以接受的,所以感谢所有帮助过的人。

2 个答案:

答案 0 :(得分:3)

正则表达式^["]$尝试匹配包含一个单引号的字符串。

"K\"23"将不匹配,因为双引号并不孤单。基本上,正则表达式只匹配此字符串:""""而不是其他任何内容。

Replace解决方案是最直接的解决方案。


仅限正则表达式的解决方案是:

public const string checkStringForDoubleQuotes = @"""";
this.LocationCode = Regex.Replace(this.LocationCode, checkStringForDoubleQuotes, string.Empty);

演示

http://regex101.com/r/qS2aU2

答案 1 :(得分:1)

使用此:

s = s.Replace("\"", string.Empty);

OR

s = s.Replace(@"""", string.Empty);