求UltraEdit中跳过引号内逗号,定位指定列内容的正则表达式(支持替换)
在UltraEdit中处理带引号的CSV文本:定位并替换指定列内容
前置设置
- 打开UltraEdit后,切换到**Perl兼容正则表达式(PCRE)**模式:点击菜单栏「搜索」→「正则表达式」→选择该模式
查找并替换第三列(第2、3个逗号间的内容)
正则表达式说明
要忽略引号内的逗号精准定位列,可用以下规则:
- 查找正则:
^((?:[^",]+|"[^"]*"),){2}([^",]+|"[^"]*)(.*)$^匹配行开头(?:[^",]+|"[^"]*")匹配单个CSV列:要么是无逗号/引号的普通文本,要么是引号包裹的含逗号内容{2}重复匹配前两列及后续逗号([^",]+|"[^"]*")捕获第三列内容(待替换部分)(.*)$捕获第三列之后的所有内容
- 替换格式:
\1[你的新内容]\3\1引用前两列及逗号的内容,\3引用第三列之后的所有内容,中间替换为目标文本
操作步骤
- 按
Ctrl+H打开「查找替换」对话框 - 在「查找什么」输入框粘贴上述查找正则
- 在「替换为」输入框输入
\1[你的新内容]\3,将[你的新内容]替换为实际需要的文本 - 点击「全部替换」,批量完成所有行的第三列替换
示例验证
针对示例行:
249716,"UNITED HEALTHCARE OF NEW YORK, INC",1007,ORGANIZATION,1007,US,,PO BOX 5290
若将第三列替换为NEW_CODE,替换后该行变为:
249716,"UNITED HEALTHCARE OF NEW YORK, INC",NEW_CODE,ORGANIZATION,1007,US,,PO BOX 5290
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

