首页 > 解决方案 > vscode 正则表达式获取带有以逗号分隔的重复字符串的行

问题描述

我有一个带有以下文本的 vscode 文件:

"070230107121","46969","petcarerx","petcarerx"
"070230107121","46970","petcarerx","petcarerx"
"070230107121","47332","petcarerx","petcarerx"
"070230107121","47333","petcarerx","petcarerx"
"070230107121","47333","petcarerx","petcarerx"
"070230107121","46968","petcarerx","petcarerx"
"07087","46968","petcarerx","petcarerx"
"07087","46968","petcarerx","petcarerx"

如果我执行 ctrl+f 正则表达式^(.*)(\n\1)+$,它将找到相同的行,因此在这种情况下,它会找到两种相同的行: 在此处输入图像描述

我正在尝试创建一个正则表达式来查找第一列相同的所有行。所以在这种情况下;查找第一个逗号之前的字符串相同的所有行。

这个正则表达式获取第一个逗号之前的所有内容;^(.+?),,有没有办法可以将它与我的第一个正则表达式结合起来,以获得第一个逗号之前相同的所有行?

标签: regexvisual-studio-code

解决方案


您可以使用

^(.*?),.*(?:\n\1,.*)+$

细节

  • ^- 一行的开始
  • (.*?)- 捕获组 1(\1内联反向引用可以从正则表达式模式中引用它,$1如果您需要从替换模式中引用它)
  • ,- 一个逗号
  • .*- 线路的其余部分
  • (?:\n\1,.*)+- 1 次或多次重复换行符,然后是与第 1 组中相同的值,然后是逗号和该行的其余部分
  • $- 行尾。

在线查看正则表达式演示

在 VS 代码中测试:

在此处输入图像描述


推荐阅读