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

如何使用正则表达式匹配包含两个不相同单词的所有行

正则匹配两个字段不同行的解决方案

可以实现,直接使用负向先行断言即可达到直接匹配目标行的效果。

可用正则表达式

/^\d+: ([,\w]+) (?!\1)[,\w]+\s*$/gm

正则规则拆解

  • ^:行首锚定,确保匹配从行开头开始
  • \d+::匹配行首的数字编号+冒号的固定前缀
  • ([,\w]+):捕获第一个字段,匹配范围包含字母、数字、下划线、英文逗号,可根据实际字段规则调整
  • :匹配两个字段之间的空格
  • (?!\1):负向先行断言,限定后面的内容不能和第一个捕获组的内容完全相同
  • [,\w]+:匹配第二个字段,规则和第一个字段一致
  • \s*$:匹配行尾可能存在的空白字符,同时锚定行尾,避免匹配到行内部分内容

测试代码示例

let string = `
1: 43,186 43,186 
2: 296,531 296,531 
3: 108086 108086 
4: abcdef abcdef 
5: Capture This 
6: 497,802 497,802 
7: 200,062 300,062 
8: Not Same 
9: 202232 252232 
10: 4,324,452 4,324,452 `;

let magicalRegex = /^\d+: ([,\w]+) (?!\1)[,\w]+\s*$/gm;

// 测试匹配结果
let matches = string.match(magicalRegex);
console.log(matches);
// 输出结果:
// [
//   '5: Capture This ',
//   '7: 200,062 300,062 ',
//   '8: Not Same ',
//   '9: 202232 252232 '
// ]

string.replace(magicalRegex, matched=>{
  // 此处对匹配到的目标行做自定义处理
  return matched;
});

补充说明

如果你的字段允许出现除了\w和,之外的字符,只需要调整字符集规则即可,比如允许出现短横线就改为[,\w-]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:15:02