kk_lee69 发表于 2017-3-30 01:44:01

如何使用正则 在某个字符串中 插入字符[已解决]

本帖最后由 kk_lee69 于 2017-3-31 01:48 编辑

如何使用正则 在某个字符串中 插入字符

字符串如下: B006,B005,,B005,,BA06,B5,,B005,B006

如何变成: 1101011011

,跟, 中間有字全部變成1沒有字 就變成0

Alam 发表于 2017-3-30 06:43:27

只会一步步来.Local $str = 'B006,B005,,B005,,BA06,B5,,B005,B006'
Local $re = StringRegExpReplace($str, '\w+', '1')
$re = StringReplace($re, ',,', '0')
$re = StringReplace($re, ',', '')
MsgBox(0, '',1101011011 & @CRLF & $re)

kk_lee69 发表于 2017-3-30 11:02:08

回复 2# Alam

不過這樣會有個小問題 當 資料是

B001,,,,

這樣就無法變成 10000

haijie1223 发表于 2017-3-30 15:27:35

回复 3# kk_lee69 Local $sStr = 'B006,B005,,,B5,,B005,,'
Local $aArray = StringSplit($sStr, ',')
Local $sRet = ''
For $i = 1 To $aArray
        $sRet &= $aArray[$i] ? 1 : 0
Next
MsgBox(0, $sStr, $sRet)

haijie1223 发表于 2017-3-30 15:41:08

回复 3# kk_lee69 Local $sStr = 'B006,B005,,,B5,,B005,,'
Local $sRet = StringRegExpReplace(StringRegExpReplace(StringRegExpReplace(StringRegExpReplace($sStr & ',', '[^,]+?,', '1,'), ',', '0,'), '10,', '1'), ',', '')
MsgBox(0, $sStr, $sRet)

afan 发表于 2017-3-30 17:15:28

Local $sS = 'B006,B005,,B005,,BA06,B5,,B005,B006'
MsgBox(0, $sS, StringReplace(StringRegExpReplace($sS, '\w+,?', '1'), ',', 0))

zhouzc88 发表于 2017-3-30 21:01:51

小白学习了,谢谢

kk_lee69 发表于 2017-3-31 01:47:58

回复 6# afan


    感謝各位的回覆   小弟學習了

kk_lee69 发表于 2017-3-31 01:48:07

回复 5# haijie1223


    感謝各位的回覆   小弟學習了

229989799 发表于 2017-3-31 11:16:39

为什么那么多神。。人类膜拜中

zghwelcome 发表于 2017-4-5 14:52:09

学习了,各位大佬真厉害

jingzhinvr 发表于 2017-4-5 19:49:17

楼上非常不错的方法
页: [1]
查看完整版本: 如何使用正则 在某个字符串中 插入字符[已解决]