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