Regex 正则表达式(记事本+;+;)在类似CSV的日志文件中查找特定列不是0或00的所有内容

Regex 正则表达式(记事本+;+;)在类似CSV的日志文件中查找特定列不是0或00的所有内容,regex,notepad++,Regex,Notepad++,我试图使用Notepad++RegEx功能搜索数千个文件,以匹配特定模式。这些文件包含记录的数据,感兴趣的行以“LOG:”开头,后跟逗号分隔的数据。在这些行中,我感兴趣的是找到某些列不等于“0”或“00”的行 示例数据集。我对第5列感兴趣,如粗体部分所示: 日志:69369,1,30,40,80,06,1 日志:69369,1,30,40,C0,06,1 位置:6945369576034,-19244227,1,0 日志:69405,2,30,40,00,06,2 位置:693336957602

我试图使用Notepad++RegEx功能搜索数千个文件,以匹配特定模式。这些文件包含记录的数据,感兴趣的行以“LOG:”开头,后跟逗号分隔的数据。在这些行中,我感兴趣的是找到某些列不等于“0”或“00”的行

示例数据集。我对第5列感兴趣,如粗体部分所示:

日志:69369,1,30,40,80,06,1
日志:69369,1,30,40,C0,06,1
位置:6945369576034,-19244227,1,0
日志:69405,2,30,40,00,06,2
位置:6933369576024,-19244235,1,0
日志:69405,2,30,40,C0,06,2

首先,我有一个相反的表达式,即只查找第5列等于“0”或“00”的行:


如何更改此项以查找列5不是“0”或“00”的所有“日志:”行(在本例中,我希望匹配第一行、第二行和最后一行)?

使用基于负前瞻的正则表达式

^(LOG:)[^,]*,[^,]*,[^,]*,[^,]*,(?!00?(?:,|$))([^,]*)

其中某个列不等于“0”或“00”

您可以使用以下通用正则表达式(如果要检查
n
列,请将
4
替换为
n-1
):

你可以试试这个。看演示

^(LOG:)[^,]*,[^,]*,[^,]*,[^,]*,(?!00?(?:,|$))([^,]*)
^(?:LOG:)(?:[^,]*,){4}(?!00?\b)([^,]*).*$
^LOG:(?:[^,]*,){4}\K(?!0+,)([^,]*)