C# 正则表达式不允许在C中使用特殊字符

C# 正则表达式不允许在C中使用特殊字符,c#,regex,C#,Regex,我知道这不是一个正确的问题,但我已经尝试了很多正则表达式,但没有一个是有效的。我想排除特殊字符,但只需要包括{,},-,: 我需要排除?~@$%`^ 请求如下: { "StoreNumber":"9907<>", "AssociateId":"tkmadoy", "PrchgType":"PCY", "Header":{ "ApiVersion":"18.1.0.0", "JsonWebToken":null } } 但是正则表达式仍然不起作用,除了一些特殊字符外

我知道这不是一个正确的问题,但我已经尝试了很多正则表达式,但没有一个是有效的。我想排除特殊字符,但只需要包括{,},-,:

我需要排除?~@$%`^

请求如下:

{  
"StoreNumber":"9907<>",
"AssociateId":"tkmadoy",
"PrchgType":"PCY",
"Header":{  
   "ApiVersion":"18.1.0.0",
  "JsonWebToken":null
}
}
但是正则表达式仍然不起作用,除了一些特殊字符外,它可以省略特殊字符。 我为不允许使用html标记和特殊标记创建了以下代码

[^!*()\|\'?~@#$%`^<>]+$

但它们都不起作用。如果有人能帮我,我将不胜感激。

我认为你需要逃离大部分角色,如果不是所有角色的话

 [^\?~@#\$%`\^<>]+

你到底想配什么?例如,使用Json解析器可能更好。我改为Json,但仍然没有给出所需的结果。通常最好指定允许的内容,而不是不允许的内容。例如,你说,我需要排除?~@$%`^……那么,空字符、英镑符号或版权符号呢?你也不允许这些吗?如果你解释一下会有帮助;它们在JSON字符串中都是有效的。您可以使用一个否定的字符类将这些字符匹配1+次,然后断言行的结尾。您可以使用字符类来匹配不需要的内容,然后将其替换为空字符串[!*|'?~@$%^]+`并省略$,以便在整个字符串中匹配它们。
 [^\?~@#\$%`\^<>]+