You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Notepad++中用正则匹配JSON对象中指定的两个键值对组合?

在Notepad++中用正则匹配包含特定键值对的JSON对象

核心问题原因

你的正则失效是因为Notepad++默认正则引擎里,.元字符不匹配换行符,而JSON对象的键值对分布在多行,导致.*?无法跨换行匹配内容。

两种可行解决方案

方案1:用[\s\S]替代.匹配任意字符(含换行)

[\s\S]能匹配所有空白/非空白字符,自然包含换行。针对你的需求,正则表达式如下:

匹配ordertyp=TINOP在status=deleted之前的JSON对象

\{[^}]*"ordertyp"\s*:\s*"TINOP"[^}]*"status"\s*:\s*"deleted"[^}]*\}

支持两个键值对顺序颠倒的情况

如果JSON对象中两个键的位置不确定,用分支匹配:

\{[^}]*("ordertyp"\s*:\s*"TINOP"[^}]*"status"\s*:\s*"deleted"|"status"\s*:\s*"deleted"[^}]*"ordertyp"\s*:\s*"TINOP")[^}]*\}

方案2:开启Notepad++的“匹配换行符”选项

  1. 打开Notepad++的查找替换对话框(快捷键Ctrl+F)
  2. 切换到正则表达式模式
  3. 勾选左下角的匹配换行符(部分旧版本显示为.匹配换行)

此时可以使用更简洁的正则:

固定顺序匹配

\{.*?"ordertyp"\s*:\s*"TINOP".*?"status"\s*:\s*"deleted".*?\}

支持顺序颠倒

\{.*?(("ordertyp"\s*:\s*"TINOP".*?"status"\s*:\s*"deleted")|("status"\s*:\s*"deleted".*?"ordertyp"\s*:\s*"TINOP")).*?\}

注意事项

  • 上述正则仅适用于单层JSON对象,如果JSON存在嵌套结构,可能出现误匹配([^}]*会在遇到第一个闭合大括号时停止)。
  • 处理超大型JSON文件时,复杂正则可能导致卡顿,建议先拆分文件或使用增量查找功能。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:13:17