在Notepad++中提取CSV第三列数字,忽略可变文件扩展名
嘿,我来帮你搞定Notepad++里处理CSV的这个需求!
你要定位每个记录第三列里数字后的扩展名(比如.MSG、.DOCX这类),不管扩展名是什么类型,都能精准选中甚至替换掉,用Notepad++的正则表达式功能就能轻松实现,步骤如下:
操作步骤
- 打开你的CSV文件,按下
Ctrl+H调出替换对话框。 - 在「查找模式」里选择「正则表达式」,别勾选「.匹配换行符」(除非你的CSV是多行记录,不过这个正则也兼容多行)。
- 根据你的CSV字段是否带空格,选择对应的查找规则:
- 如果第三列前后没有空格(比如
1.MSG),在「查找内容」里输入:(?:[^,]+,){2}\d+\K\.\w+(?=,) - 如果第三列前后可能有空格(比如
1.DOCX),用这个适配空格的版本:(?:[^,]+,){2}\s*\d+\K\.\w+(?=\s*,)
- 如果第三列前后没有空格(比如
- 如果你要删除扩展名只保留数字,就把「替换为」留空,点击「全部替换」;如果只是要选中所有扩展名,点击「查找全部」,所有匹配的内容会被一次性选中。
正则规则解释
给你拆解一下这个正则的逻辑,方便你理解和调整:
(?:[^,]+,){2}:跳过前两个CSV字段(非捕获组,不会被匹配选中),精准定位到第三个字段的位置。\s*:处理字段开头可能存在的空格(可选规则)。\d+:匹配第三列里的数字部分,确保我们只选中数字后面的扩展名。\K:重置匹配起点,让前面的内容(数字和前两个字段)不被包含在选中结果里,只抓我们要的扩展名。\.\w+:匹配任意格式的扩展名(点号+字母/数字/下划线,覆盖.MSG、.DOCX、.PDF等所有常见类型)。(?=\s*,):确保我们匹配的内容后面是逗号(或空格+逗号),避免误匹配其他位置的类似内容。
拿你的示例数据测试的话,这个正则会精准选中.MSG、.DOCX、.MSG这三个扩展名,替换后第三列就只剩数字啦!
内容的提问来源于stack exchange,提问作者WR7500
相关产品推荐
相关产品推荐

