如何用正则表达式将CSV每行连续逗号替换为最近的字母数字值
操作步骤
打开Notepad++的替换窗口(快捷键Ctrl+H),匹配模式选择「正则表达式」,不要勾选「点号匹配换行符」选项,按以下两步操作:
第一步:填充行首空白位置
- 查找目标:
^,+(?=([^\n,]+)) - 替换为:
$1, - 操作:反复点击「全部替换」,直到窗口提示找不到匹配项,此时所有行首的空白都会被填充为该行第一个非空值加逗号。
第二步:填充行中连续空白位置
- 查找目标:
([^\n,]+),+, - 替换为:
$1,$1, - 操作:反复点击「全部替换」,直到窗口提示找不到匹配项,即可得到你需要的填充结果。
原理解释
- 第一步的正则会匹配行首所有连续的逗号,通过正向预查获取该行第一个非空值,每次替换把最前面的一个空逗号替换为对应值加逗号,多次运行就把行首所有空都补全。
- 第二步的正则会匹配「非空值+至少两个连续逗号」的片段,每次替换把第一个空逗号补为前面的非空值加逗号,多次运行就能把所有连续空都用最近的前值补全。
内容的提问来源于stack exchange,提问作者aabeba
相关产品推荐
相关产品推荐

