本帖最后由 xiehuahere 于 2012-8-22 15:10 编辑
回复 1# 35888894
直接正则貌似不行,不支持组的嵌套,很难做啊~~
否则就可以 "((.*?),){1,}(.*?)" 这种方式来正则替换了。
最终以很难看的方式做出来了,但优点是正则简单 ^_^
#include <Array.au3>
#include <String.au3>
Local $bbsd = ':正常,"主营米奇,均为专柜正品,带防伪,欢迎大家前来选购",14733251131,迪士尼米奇女包包专柜正"品2012新款,夏潮女士长,款钱包邮U"P2103-02,2012-08-09 23:30:39,ht,箱包皮具/热销女包/男包>钱包卡套>钱包卡套,129.00,包邮,744,否,37,0:正常, , '
$array1 = StringRegExp($bbsd, '".*?"', 3) ; Get string within double quotation marks
_ArrayDisplay($array1)
For $i = 0 To UBound($array1) - 1
$array1[$i] = StringRegExpReplace($array1[$i], ',', '。')
Next
_ArrayDisplay($array1)
$array2 = StringSplit($bbsd, '"')
_ArrayDisplay($array2)
;Rejoin strings
$bbsd = ""
Local $j = 0
For $i = 1 To $array2[0]
If Mod($i, 2) == 0 Then ;even
$bbsd &= $array1[$j]
$j += 1
Else ;odd
$bbsd &= $array2[$i]
EndIf
Next
MsgBox(0, "", $bbsd)
|