数据采集,求一正则的写法!
求一正则的写法!小弟在学习,自己在做一个邮箱数据采集
下面这个正则 能采集到 COM的邮箱,
但是我想连同 CN 的一起采集,我想一次写在一行代码里,应该怎么写!
$array = StringRegExp($sText, '\w+@\w+\.com' , 3) 在等等论坛高手吧,牛奶会有的,蛋糕也会有的! 回复 1# qq123123
试试这个可以不?
\w+@\w+\.cn|\w+@\w+\.com 本帖最后由 easefull 于 2011-4-16 21:58 编辑
做题#include <Array.au3>
Local $sText = 'killer@126.com134564d8fd1f' & @CRLF &'34rdfar79df75644 killer@126.com.cn16974641' & @CRLF &'34rdfar79df75644 killer2@126.com.cn16974641'
Local $sRegExp= '(\w+?@\w+?\.com.cn)|(\w+?@\w+?\.com)'
Local $asResult = StringRegExp($sText, $sRegExp, 3)
_ArrayDisplay($asResult)
Exit自改答案:
'(\w+?@\w+?\.com.cn)|(\w+?@\w+?\.com)'
红色部分冗余,'\w+?@\w?\.'重复,应该可以精减,详见后面跟贴的代码.
'(\w+?@\w+?\.com.cn)|(\w+?@\w+?\.com)'
红色部分冗余, \w+?@ 和\w+@匹配是一样的
执行结果异常.执行结果会出现异常——每匹配.com的信箱前,都多匹配出一个空字符.
原因不明,解决方法是去掉支枝前后的捕获 '\w+?@\w+?\.com.cn|\w+?@\w+?\.com'.
注:此问题疑似BUG,详见http://www.autoitx.com/forum.php?mod=viewthread&tid=23813&extra= \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
中国提供的这个,可以采集到,但是有错误! $sText="123@qq.com789@qq.cn555@qq.com"
$array = StringRegExp($sText, '\w+@\w+\.(?:com|cn)' , 3)
For $i=0 To UBound($array)-1
MsgBox(0,"",$array[$i])
Next
页:
[1]