如何通过查找替换批量修改JSON文件中指定行的下一行内容?
JSON文件批量查找替换与正则匹配解决方案
一、批量替换指定行下的group值
以VS Code、Notepad++这类支持正则的文本编辑器为例,你可以分两次执行查找替换(分别针对Apples和Pears):
针对"Apples"的替换
- 打开查找替换面板,开启正则表达式模式(一般面板上有
.*图标) - 在「查找内容」框输入:
("name":\s*"Apples",)\s*("group":\s*")([^"]*)(") - 在「替换为」框输入:
$1$2Apple Tree$4 - 点击「全部替换」即可完成操作
针对"Pears"的替换
把上面查找内容里的Apples换成Pears,替换内容里的Apple Tree换成Pear Tree,重复上述步骤即可。
正则说明:
("name":\s*"Apples",):捕获包含"Apples"的整行内容(允许键值对间有任意空格)\s*:匹配换行、空格等空白字符,确保跨两行的匹配有效("group":\s*"):捕获group键的引号部分,保留原有格式([^"]*):匹配原group的旧值(除引号外的任意字符)$1/$2/$4:引用捕获的内容,保证原有结构不变,只替换中间的旧值
二、单复数精准匹配的正则解决方案
你之前尝试\Apple无效,是因为正则里的\是转义符,单独使用会导致语法错误。要精准匹配Apple的单复数(避免匹配类似Applesauce这类包含Apple的无关词),可以用以下正则:
匹配Apple或Apples
\bApple(s)?\b
\b:单词边界,确保匹配的是独立的单词,不会被其他字符干扰(s)?:匹配可选的s后缀,同时兼容单数和复数形式
匹配所有Apple词根的单词(如Apple、Apples、Appleseed等)
如果需要覆盖更多衍生词,可使用:
\bApple\w*\b
\w*:匹配任意数量的字母、数字或下划线,覆盖所有以Apple开头的单词
注意事项:
- 必须确保编辑器开启了正则表达式模式,否则正则语法会被当作普通文本处理
- 不同编辑器的正则引擎略有差异,比如部分工具可能需要将
\b替换为\</\>,但主流编辑器(VS Code、Notepad++)都支持\b
内容的提问来源于stack exchange,提问作者Kittenpox
相关产品推荐
相关产品推荐

