我有一个文件,我想用正则表达式更改其中的文本。
"code": {
"restore": 1,
"restore_on_startup": true,
},
我想更改
之间的文字 "code": {
和
},
我试过像
这样的东西 Regex.Replace(subject, @"?xxx.*?yyy", "Replace");
但由于我的文字包含新行,因此无效。
答案 0 :(得分:1)
使用
(.|\\r|\\n)*?
而不是
.*?
或使用RegexOptions类中的multiline属性
答案 1 :(得分:1)
此正则表达式适用于您的示例,它将替换括号内的所有内容
Regex.Replace(subject,"(?<=\"code\":\\s{).*?(?=},)", "replace", RegexOptions.Singleline);
“code”:{ “恢复”:1, “restore_on_startup”:是的, },强>
将产生
“code”:{replace},
正则表达式基本上是匹配以"code": {
为前缀的所有内容,后缀为},
,然后用我的替换替换内部的所有内容。您可能需要调整它以满足您的需求。
答案 2 :(得分:0)
我建议你逐行搜索"code": {
。
发现,从同一行开始寻找}
。 (注意在第一行中关注code
部分,因为}
之前可能有code
使用List<string> Add
存储所有行,直到找到}
。
之后,将您在单个字符串中找到的所有行连接起来,进行替换。 从文件中删除所有这些行并添加新形成的字符串。