我的字符串如下;
... blablaa"}," remove_list":[24,20,22,25,26,23,27,19,21], {" var":" value",....
我试图删除字符串部分,如下所示,但没有任何改变
Regex.Replace(_QsString,@"""remove_list: [?+],", "");
提前谢谢
答案 0 :(得分:2)
在我看来,您希望替换方括号(包括它们和前面的逗号)之间的所有内容,您的表达式不会考虑remove_list
之后的双引号,而[?+]
被视为字符类;匹配问号或加号最好是“一次”。
我相信你想要以下......
Regex.Replace(_QsString, @"""remove_list"": \[[^]]*],", "");
注意:要匹配文字特殊字符,必须在其前面加上字符类之外的反斜杠。
答案 1 :(得分:1)
我认为您正在尝试使用正则表达式中的[?+]
部分来匹配[
和]
之间的任何内容,但语法错误。
表达式[?+]
将匹配字符?
或字符+
。 [
和]
成为匹配其中任何字符的集合。
您需要转义括号并使用.
选择器而不是?
。此外,您应该在限定符之后添加另一个?
以使其非贪婪,否则它将吞下一切到字符串中的最后]
:
Regex.Replace(_QsString,@"""remove_list"": \[.+?\],", "")
(另外,你错过了remove_list
之后的右引号。)