[已解决]正则替换_将CSV文件中达到12位的数字替换成"\t数字"
本帖最后由 仙乃日 于 2015-12-7 08:33 编辑例如有一CSV文件内容为:11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会如何将其的35058300300100640 替换成"\t35058300300100640",350587196210060040替换成"\t350587196210060040",注: \t 是 tab键
当用 excle 打开 csv文件时,如果数字达到12位,会显示成科学记数法。将长数字串加上引号和制表符,Excel就会将其识别为文本格式。 正则替换:Local $str = '11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会'
MsgBox(0, '', StringRegExpReplace($str, '(\d{12})', '\\t\1')) Local $sSource = '11, ,35058300300100640,叶A意,女,350587196210060040,19621006,美林居委会'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '\d{12,}', '"' & @TAB & '\0"')
MsgBox(0, '替换结果', $sSRERe)
afan 发表于 2015-12-5 19:33 http://www.autoitx.com/images/common/back.gif
能否排除带有X的身份证号,如:35058519490504542X 这样的身份证号就不用再去加引号和制表符呢? 回复 4# 仙乃日 Local $sSource = '11, ,35058300300100640,叶A意,女,35058519490504542X,19621006,美林居委会'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '\d{12,}(?=,)', '"' & @TAB & '\0"')
MsgBox(0, '替换结果', $sSRERe)
页:
[1]