找回密码
 加入
搜索
查看: 2352|回复: 4

[AU3基础] [已解决]正则替换_将CSV文件中达到12位的数字替换成"\t数字"

  [复制链接]
发表于 2015-12-5 18:35:36 | 显示全部楼层 |阅读模式
本帖最后由 仙乃日 于 2015-12-7 08:33 编辑

例如有一CSV文件内容为:
11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会
如何将其的35058300300100640 替换成"\t35058300300100640",350587196210060040替换成"\t350587196210060040",注: \t 是 tab键

当用 excle 打开 csv文件时,如果数字达到12位,会显示成科学记数法。将长数字串加上引号和制表符,Excel就会将其识别为文本格式。
发表于 2015-12-5 19:16:36 | 显示全部楼层
正则替换:
Local $str = '11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会'
MsgBox(0, '', StringRegExpReplace($str, '(\d{12})', '\\t\1'))

评分

参与人数 1金钱 +10 收起 理由
仙乃日 + 10 谢谢!

查看全部评分

发表于 2015-12-5 19:33:22 | 显示全部楼层
Local $sSource = '11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '\d{12,}', '"' & @TAB & '\0"')
MsgBox(0, '替换结果', $sSRERe)

评分

参与人数 1金钱 +10 收起 理由
仙乃日 + 10 谢谢!A版的热心帮助。

查看全部评分

 楼主| 发表于 2015-12-6 12:42:49 | 显示全部楼层
afan 发表于 2015-12-5 19:33



    能否排除带有X的身份证号,如:35058519490504542X 这样的身份证号就不用再去加引号和制表符呢?
发表于 2015-12-6 14:04:27 | 显示全部楼层
回复 4# 仙乃日
Local $sSource = '11, ,35058300300100640,叶A意,女,35058519490504542X,19621006,美林居委会'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '\d{12,}(?=,)', '"' & @TAB & '\0"')
MsgBox(0, '替换结果', $sSRERe)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-2 20:42 , Processed in 0.089124 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表