正则获取冒号前面的值[已解决]
本帖最后由 heroxianf 于 2016-4-26 17:41 编辑姓名:(张三)电话:(1399202141)ERP:(test)
最终我是想整理成:
姓名:张三
电话:1399202141
ERP:test
我用正则 \((.*?)\) 抓取出货号里的内容,但是冒号前面的不能抓全。
正则错误尝试: \)(.*?)\( 这样貌似可以输出想要的值了。{:face (197):}求检查Local $aDays = "姓名:(张三)电话:(1399202141)ERP:(test)尾部文字"
Local $aa = StringRegExpReplace($aDays, "\(", "")
Local $bb = StringSplit($aa, ")")
For $i = 1 To $bb
MsgBox($MB_SYSTEMMODAL, "", "$aDays[" & $i & "] - " & $bb[$i], 2)
Next
### 友情提示:本脚本由 Au3.REHelper 于 2016/04/26 17:16 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = '姓名:(张三)电话:(1399202141)ERP:(test)'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?<=^|\))(.+?:)\((.+?)\)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))
回复 3# afan
感谢A大,问题解决。 如果 姓名:(张三)电话:(1399202141)ERP:(test) 这个是能自定的话不要生成这样的字串。
如果有特殊情况就不对了,试试这个,姓名:(张三(男))电话:(1399202141)ERP:(test)
如果不能自定生成的字串,且只有姓名:、电话:、ERP:等固定字段的话,那么用这些来截取更好。 如果 姓名:(张三)电话:(1399202141)ERP:(test) 这个是能自定的话不要生成这样的字串。
如果有特殊情况就不 ...
志艺风云 发表于 2016-4-28 17:43 http://www.autoitx.com/images/common/back.gif
你这样已经是完全不同的字符串,感觉有点钻牛角尖了… 如果有多种情况,自然有多种情况对应的代码。 学习啦谢谢楼主
页:
[1]