我有一个使用 Notepad ++ 搜索的大型 csv 文件。
寻找正则表达式(或其他方法)来查找不以 83 个连续逗号结尾的行。
我在想这样的事情:
[^,]{83}$
问题[^,]{83}
在于它需要有 83 个字符,同时没有逗号。因此,如果最后 83 个字符中的任何一个是逗号,则该表达式将失败。使用负前瞻来搜索坏事会更容易,如果找到则失败。
^(?!.*,{83}$)
您正在搜索一行末尾的83 个非逗号,但有些可能是逗号。
使用锚定在行尾的后视来断言前面的 83 个字符不都是逗号(有些是允许的,但不是全部):
(?<!,{83})$
所以你想要(行首或非逗号字符),后跟不超过 82 个逗号。
(^|[^,]),{,82}
Denomales 是对的,但我会这样做:
([^,],\{0,82\}|^,{0,82})$
它匹配以非逗号字符结尾的行,后跟 0 到 82 个逗号或少于 83 个逗号的整行。