使用Regex删除字符串

时间:2014-10-19 21:38:54

标签: c# regex

我的字符串如下;

  

... blablaa"}," remove_list":[24,20,22,25,26,23,27,19,21],   {" var":" value",....

我试图删除字符串部分,如下所示,但没有任何改变

Regex.Replace(_QsString,@"""remove_list: [?+],", ""); 

提前谢谢

2 个答案:

答案 0 :(得分:2)

在我看来,您希望替换方括号(包括它们和前面的逗号)之间的所有内容,您的表达式不会考虑remove_list之后的双引号,而[?+]被视为字符类;匹配问号或加号最好是“一次”。

我相信你想要以下......

Regex.Replace(_QsString, @"""remove_list"": \[[^]]*],", "");

注意:要匹配文字特殊字符,必须在其前面加上字符类之外的反斜杠。

Code Demo

答案 1 :(得分:1)

我认为您正在尝试使用正则表达式中的[?+]部分来匹配[]之间的任何内容,但语法错误。

表达式[?+]将匹配字符?或字符+[]成为匹配其中任何字符的集合。

您需要转义括号并使用.选择器而不是?。此外,您应该在限定符之后添加另一个?以使其非贪婪,否则它将吞下一切到字符串中的最后]

Regex.Replace(_QsString,@"""remove_list"": \[.+?\],", "")

(另外,你错过了remove_list之后的右引号。)