请教CSV的正则处理
本帖最后由 auto 于 2012-1-4 16:49 编辑"""",AAAA,123456,",",12345678901234567890,0.123456,dddddddddddd,,",,"
结果:
1 "
2 AAAA
3 123456
4 ,
5 12345678901234567890
6 0.123456
7 dddddddddddd
8
9 ,,
表示不会正则,等Afan吧! 本帖最后由 Ycxw2008 于 2012-1-4 15:55 编辑
不知楼主啥意思,你这个好像一点匹配的规律都没有
期待高手匹配
觉得这样更合理点
([^,]+),
""""
AAAA
123456
"
"
12345678901234567890
0.123456
dddddddddddd
" 不知楼主啥意思,你这个好像一点匹配的规律都没有
期待高手匹配
觉得这样更合理点
([^,]+),
"""" ...
Ycxw2008 发表于 2012-1-4 15:43 http://www.autoitx.com/images/common/back.gif
添加附件,用excel就知道了 回复 4# auto
OUT了,不好意思,好像很难 个人觉得最好有多一两条数据才好做判断, 不然单单这样的一条数据, 匹配出来的代表性也不强! 回复 2# hzxymkb
等 binghc 来吧,这个我一次正则搞不定~ 回复 7# afan
binghc好久不见了 回复 7# afan
高手,出个招吧,没有你搞不定的正则,
其实就是csv文件的转换成其它格式。。
上面的数据是我虚拟的,实际情况可能更复杂些 表示不会正则,等Afan吧!
hzxymkb 发表于 2012-1-4 15:41 http://www.autoitx.com/images/common/back.gif
你也是高手。。都是超版了 回复 9# auto
一次匹配搞不定, 当然这并非必须,只是我比较郁闷~#include <Array.au3>
Local $Str = '"""",AAAA,123456,",",12345678901234567890,0.123456,dddddddddddd,,",,"'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str & ',', '\h*([^' & "'" & '"]*?|(?:"[^"]*")*)\h*,', 3)
If @Error Then Exit
For $i = 0 To UBound($Test) - 1
If StringRegExp($Test[$i], '^".+?"$') Then $Test[$i] = StringRegExpRePlace($Test[$i], '^"|"$', '')
If StringInStr($Test[$i], '""') Then $Test[$i] = StringReplace($Test[$i], '""', '"')
Next
_ArrayDisplay($Test, UBound($Test)) 回复 11# afan
高手出手,自然不一样。
表示看不懂,怎么办?
没装AUTOIT,明天找些数据测试一下 回复 10# auto
我的超版是走后门来的! 回复auto
我的超版是走后门来的!
hzxymkb 发表于 2012-1-4 22:36 http://www.autoitx.com/images/common/back.gif
呵呵, 那也是利害啊! 混得开! 正则强大,从来没看懂过,