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

如何用正则表达式(RegEx)查找变量相同但值不同的重复项

匹配变量相同但值不同的重复行的正则表达式方案

针对你要找的「0x开头的十六进制变量相同,但等号后对应值不同」的重复行,这里提供精准的正则表达式方案:

核心正则(匹配连续重复行)

^(\b0x[0-9A-Fa-f]+\b)\s*=\s*(.*)$\s*^\1\s*=\s*(?!\2).+$

正则说明

  • ^(\b0x[0-9A-Fa-f]+\b):精准捕获每行开头的十六进制变量,单词边界\b确保只匹配完整的变量串,避免误匹配相似前缀的内容
  • \s*=\s*(.*)$:匹配等号(前后允许任意空格),并把等号后的完整值捕获到分组2中
  • \s*:匹配两行之间的任意空白内容(换行、空格、制表符都包含在内)
  • ^\1\s*=\s*:匹配下一行开头和分组1完全一致的变量
  • (?!\2).+$:通过负向预查断言,确保下一行的值和分组2的内容不同,然后匹配该行剩余的全部内容

使用注意事项

  1. 必须启用多行模式(Multiline):让^和$分别匹配每行的开头和结尾,不同编辑器的开启方式略有差异(比如VS Code中,开启正则搜索后点击^$按钮即可启用)
  2. 如果需要匹配非连续的重复变量行(即相同变量的行不挨着),可以用下面的正则(适合支持正向预查的编辑器):
^(\b0x[0-9A-Fa-f]+\b)\s*=\s*.+$(?=.*^\1\s*=\s*(?!\1).+$)

为什么你之前的正则不生效

你使用的^(.*)(\W\1)+$是匹配整行内容完全重复的场景,相当于要求两行的变量和值完全一致,自然无法筛选出变量相同但值不同的目标行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:35:16