记事本++统计每行某个字符串出现的次数,用来填充一个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
我不确定这是否是您想要的,如果不是,请将其评论下来,我将编辑答案以提供更多内容。
我有一个包含可变列的文件,我正在将其转换为 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
我不确定这是否是您想要的,如果不是,请将其评论下来,我将编辑答案以提供更多内容。