我有以下内容:
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, "");
这允许我在正则表达式字符串中添加更多标准(逗号),我希望该选项可以做,但意识到我没有在我的问题中添加该部分,对不起!这种方式对于项目是可以接受的,所以感谢所有帮助过的人。
答案 0 :(得分:3)
正则表达式^["]$
尝试匹配包含一个单引号的字符串。
"K\"23"
将不匹配,因为双引号并不孤单。基本上,正则表达式只匹配此字符串:""""
而不是其他任何内容。
Replace
解决方案是最直接的解决方案。
仅限正则表达式的解决方案是:
public const string checkStringForDoubleQuotes = @"""";
this.LocationCode = Regex.Replace(this.LocationCode, checkStringForDoubleQuotes, string.Empty);
答案 1 :(得分:1)
使用此:
s = s.Replace("\"", string.Empty);
OR
s = s.Replace(@"""", string.Empty);