记事本++统计每行某个字符串出现的次数,用来填充一个sql导入文件

Notepad ++ to count the number of occurrences of a string per line, to be used to pad a sql import file

我有一个包含可变列的文件,我正在将其转换为 SQL 导入文件,或者 csv。

文件设置如下:

    Account     Source    Source2    Source3    Source4    Source5              
'39','39'
'41','41'
'67','67'
'286','286'
'299','299','2312210299'
'307','307'
'341','341'
'349','349'
'351','351'
'359','359'
'362','362'
'363','363'
'378','378'
'511','511','6218','2197360511'

我正在尝试使用 Regex 来查找每行每个字符串的出现次数,以便我可以用 NULL 填充,但似乎不能把它做好。

如果我搜索 '[0-9]\*',它会找到每个实例。

如果我搜索 ['[0-9]\*']\*$,它会在每一行中找到最后一个实例。

如果我使用 '[0-9]\*'{2}$,它找不到任何每行出现 2 次的内容,从我在网上找到的内容来看,这应该是语法。

如有任何帮助,我们将不胜感激。

让我们先了解一下为什么您尝试过的方法不起作用的原因。

If I search for '[0-9]*', it finds each instance

是的,这正是它应该做的;我相信你已经明白了。

If I search for ['[0-9]*']*$, it will find the last instance in each line

我不确定你要用这个做什么,方括号中的方括号是个糟糕的主意。

If I search for ['[0-9]*']*$, it will find the last instance in each line. If I use '[0-9]*'{2}$, it doesn't find any with 2 occurrences per line, and from what I'm finding online, that should be the syntax

看到这不起作用的原因是因为 '[0-9]*'{2}$ 将连续匹配 2 个多位数字(或者根本没有数字,因为您使用的是星号)。但是数据集中的数字由 , 分隔,您 HAVE 将其考虑在内。正则表达式是一个显式工具。

你要做的是 - ^('[0-9]*',?){2}$

注意捕获组中存在一个可选的 ,。上面的正则表达式将匹配引号内有 2 个数字的行(或者根本没有数字,只是一个 '',因为我们使用星号)由 ,.

分隔

这是demo

我不确定这是否是您想要的,如果不是,请将其评论下来,我将编辑答案以提供更多内容。