在C#中替换部分RegEx模式

时间:2016-09-13 15:04:52

标签: c# regex

以下代码可以使用

string pattern = "\"cs\":\".*?\"";
string replacement = "\"cs\":\"\"";
Regex rgx = new Regex(pattern);
string stripped = rgx.Replace(resp.JsonResponse, replacement);

但是有可能对此进行调整,以便我只替换.*?

string pattern = "(exclude:\"cs\":\").*?(exclude:\")";
string replacement = "";
Regex rgx = new Regex(pattern);
string stripped = rgx.Replace(resp.JsonResponse, replacement);

1 个答案:

答案 0 :(得分:0)

是的,仅匹配.*?并添加positive lookahead/lookbehind断言,以确保它仅在条件正确时匹配。

所以,将你的模式改为

(?<="cs":").*?(?=")

(未逸出)

现在,只有当.*?前面跟"cs":"后跟"时才匹配slcli vs create --hostname=machine-one --domain=stest.example.sample.net --cpu 4 --memory 8192 -o UBUNTU_14_64 --datacenter=sjc03 --billing=monthly --tag tagone,tagtwo,tagthree,tagfour,test.example.sample.net --public --network 1000 --private

问:看起来你正在编辑JSON。您是否有理由不想将此工作推迟到JSON解析器?