Notepad++ 将 csv 中的空白 space 替换为 0
Notepad++ replace blank space with 0 in csv
我有一个 CSV 文件,其中包含如下数据。
ABC,XYZ,LMN
0,,2.3
3.4,3,5
,0,
1.3,,4.5
有什么方法可以使用 Regex
将空列替换为 0 值吗?
编辑:试过 Tim Biegeleisen 如下解决方案
Find: (^|,)(,|$)
Replace: 0
但在以下情况下不起作用。如果我有如下 CSV 数据
ABC,XYZ,LMN
0,,2.3
3.4,3,5
,,0 // here it doesn't work
1.3,,
您可以使用
Find: (?<![^,\r\n])(?=,|$)
(or) (?:,|^)\K(?=,|$)
Replace: 0
详情:
(?<![^,\r\n])
- 如果左侧没有 ,
,CR 或 LF 字符(基本上,它大致是 (?<=,|^)
,一个逗号,则匹配失败的负后视或一行的开头必须紧接在当前位置的左侧)
(?:,|^)\K
- 匹配逗号或行首,\K
从匹配值中删除逗号(如果匹配)(这是一种后视替代)
(?=,|$)
- 正前瞻要求 ,
或紧靠当前位置右侧的行尾。
参见regex demo:
我有一个 CSV 文件,其中包含如下数据。
ABC,XYZ,LMN
0,,2.3
3.4,3,5
,0,
1.3,,4.5
有什么方法可以使用 Regex
将空列替换为 0 值吗?
编辑:试过 Tim Biegeleisen 如下解决方案
Find: (^|,)(,|$)
Replace: 0
但在以下情况下不起作用。如果我有如下 CSV 数据
ABC,XYZ,LMN
0,,2.3
3.4,3,5
,,0 // here it doesn't work
1.3,,
您可以使用
Find: (?<![^,\r\n])(?=,|$)
(or) (?:,|^)\K(?=,|$)
Replace: 0
详情:
(?<![^,\r\n])
- 如果左侧没有,
,CR 或 LF 字符(基本上,它大致是(?<=,|^)
,一个逗号,则匹配失败的负后视或一行的开头必须紧接在当前位置的左侧)(?:,|^)\K
- 匹配逗号或行首,\K
从匹配值中删除逗号(如果匹配)(这是一种后视替代)(?=,|$)
- 正前瞻要求,
或紧靠当前位置右侧的行尾。
参见regex demo: