找回密码
 加入
搜索
查看: 2234|回复: 5

[AU3基础] [已解决]正则:匹配邮编的问题?

[复制链接]
发表于 2010-12-16 17:23:08 | 显示全部楼层 |阅读模式
本帖最后由 newuser 于 2010-12-17 10:21 编辑

这是一个教程看到的:
匹配中国邮政编码:[1-9]\d(?!\d)
怎么看不明白?
邮编是6位数,如果开始是1-9中任意数字[1-9]匹配,后跟数字\d,那(?!\d)不就是前面的\d后不能在跟数字吗?没有指定6位数啊?改成:[1-9]\d\d\d\d\d(?!\d)也不行啊?改成:^[1-9]\d\d\d\d\d(?!\d)$还不行?
发表于 2010-12-16 18:14:32 | 显示全部楼层
[1-9]\d{5}
 楼主| 发表于 2010-12-17 08:36:34 | 显示全部楼层
本帖最后由 newuser 于 2010-12-17 08:37 编辑

回复 2# afan
匹配不精确,是我的问题没描述清楚,麻烦afan回答代码中的几个问题,呵呵!
#cs
张三,黑龙江省 5-7771
李四,湖南省 0459-4399273
张五,河北省 010-4377965
赵六,北京  230709198001011002
吕七,北京  27070919800101123a
王八,日本  23070919800102a   230709198001022
工人网,IP http://192.164.244.56
邮编: 166405

#ce

#include <array.au3>
Local $file=FileOpen(@ScriptDir&"\excises.txt")
Local $contents=FileRead($file)
Local $result=StringRegExp($contents,"[a-zA-z]+://[^\s]*",3) 
; 匹配URL
; 通常URL的形式是ftp://xxx.xxx.xxx或http://xxx.xxx.xxx.xxx
; [a-zA-Z]+能达到匹配ftp或http
; ://匹配://
; xxx.xx.xx部分在保证 [^\s] 排除空格的前提下  * 能匹配 
_ArrayDisplay($result)
Local $result=StringRegExp($contents,"\d{17}[\d|X]|\d{15}",3)  
;匹配身份证
;身份证是15位纯数字或18位,前17位是纯数字,后1位是校验码,可能是数字或字母,那这里的X是一个未知数来匹配任意26个字母之一吗?
;18位的没匹配?
Local $result=StringRegExp($contents,"\d{17}[\d|[a-zA-Z]]|\d{15}",3)  
;看来我对 X的 理解不对?
_ArrayDisplay($result)
Local $result=StringRegExp($contents,"\d{4}-\d{7}|\d{3}-\d{8}",3)  
;匹配电话
;电话是 0459-1234567  或  010-12345678
_ArrayDisplay($result)
Local $result=StringRegExp($contents,"[1-9]\d{5}",3)  
;匹配邮编不成功?我只要6位纯数字?可她连身份正或电话里的6位数字也提取了
_ArrayDisplay($result)
Local $result=StringRegExp($contents,"^[1-9]\d{5}$",3)  
;加 ^  $也不行,根本没反应?
_ArrayDisplay($result)
FileClose($file)
 楼主| 发表于 2010-12-17 10:13:13 | 显示全部楼层
回复 3# newuser
这个解决了,总把\b理解为单词边界,其实应该是字符串边界,呵呵!
Local $result=StringRegExp($contents,"\b[1-9]\d{5}\b",3)
发表于 2010-12-17 11:03:59 | 显示全部楼层
[^\d]([1-9]\d{5})$
 楼主| 发表于 2010-12-17 15:11:47 | 显示全部楼层
回复 5# lpxx
条条大路通罗马,谢谢.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 20:22 , Processed in 0.087610 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表