1

我有一个使用 Notepad ++ 搜索的大型 csv 文件。

寻找正则表达式(或其他方法)来查找不以 83 个连续逗号结尾的行。

我在想这样的事情:

[^,]{83}$

4

4 回答 4

8

问题[^,]{83}在于它需要有 83 个字符,同时没有逗号。因此,如果最后 83 个字符中的任何一个是逗号,则该表达式将失败。使用负前瞻来搜索坏事会更容易,如果找到则失败。

^(?!.*,{83}$)

在此处输入图像描述

于 2013-06-26T15:19:57.037 回答
1

您正在搜索一行末尾的83 个非逗号,但有些可能是逗号。

使用锚定在行尾的后视来断言前面的 83 个字符不都是逗号(有些是允许的,但不是全部):

(?<!,{83})$
于 2013-06-26T15:22:59.423 回答
0

所以你想要(行首或非逗号字符),后跟不超过 82 个逗号。

(^|[^,]),{,82}
于 2013-06-26T15:20:44.483 回答
0

Denomales 是对的,但我会这样做:

([^,],\{0,82\}|^,{0,82})$

它匹配以非逗号字符结尾的行,后跟 0 到 82 个逗号或少于 83 个逗号的整行。

于 2013-06-26T15:31:10.217 回答