注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一剑千秋

真品网.net 请大家支持!

 
 
 

日志

 
 
关于我

popo:1949-2009a@163.com

网易考拉推荐

正则表达式的元字符  

2016-08-23 14:50:16|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

★以下关于正则表达式的内容来自 MSDN 和维基百科,仅供自己查阅方便

..正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。元字符既可以是放在 [] 中的任意单个字符(如 [a] 表示匹配单个小写字符 a ),也可以是字符序列(如 [a-d] 表示匹配 a 、 b 、 c 、 d 之间的任意一个字符,而 \w 表示任意英文字母和数字及下划线),下面是一些常见的元字符:

.                匹配除 \n 以外的任何字符(注意元字符是小数点)。
[abcde]    匹配 abcde 之中的任意一个字符
[a-h]         匹配 a 到 h 之间的任意一个字符
[^fgh]       不与 fgh 之中的任意一个字符匹配
\w             匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于 [a-zA-Z0-9_]
\W            不匹配大小写英文字符及数字 0 到 9 之间的任意一个,相当于 [^a-zA-Z0-9_]
\s              匹配任何空白字符,相当于 [ \f\n\r\t\v]
\S             匹配任何非空白字符,相当于 [^\s]
\d              匹配任何 0 到 9 之间的单个数字,相当于 [0-9]
\D            不匹配任何 0 到 9 之间的单个数字,相当于 [^0-9]
[\u4e00-\u9fa5] 匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 )

★ 正则表达式限定符
上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符。下面是一些常见的限定符 ( 下表中 n 和 m 都是表示整数,并且 0<n<m) :

*              匹配 0 到多个元字符,相当于 {0,}
?             匹配 0 到 1 个元字符,相当于 {0,1}
{n}          匹配 n 个元字符
{n,}        匹配至少 n 个元字符
{n,m}     匹配 n 到 m 个元字符
+           匹配至少 1 个元字符,相当于 {1,}
\b          匹配单词边界
^           字符串必须以指定的字符开始
$           字符串必须以指定的字符结束

○ 说明:

( 1 )由于在正则表达式中“ \ ”、“ ? ”、“ * ”、“ ^ ”、“ $ ”、“ + ”、“(”、“)”、“ | ”、“ { ”、“ [ ”等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义,例如希望在字符串中至少有一个“ \ ”,那么正则表达式应该这么写: \\+ 。
( 2 )可以将多个元字符或者原义文本字符用括号括起来形成一个分组,比如 ^(13)[4-9]\d{8}$ 表示任意以 13 开头的移动手机号码。
( 3 )另外对于中文字符的匹配是采用其对应的 Unicode 编码来匹配的,对于单个 Unicode 字符,如 \u4e00 表示汉字“一”, \u9fa5 表示汉字“龥”,在 Unicode 编码中这分别是所能表示的汉字的第一个和最后一个的 Unicode 编码,在 Unicode 编码中能表示 20901 个汉字。
( 4 )关于 \b 的用法,它代表单词的开始或者结尾,以字符串“ 123a 345b 456 789d ”作为示例字符串,如果正则表达式是“ \b\d{3}\b ”,则仅能匹配 456 。
( 5 )可以使用“ | ”来表示或的关系,例如 [z|j|q] 表示匹配 z 、 j 、 q 之中的任意一个字母。


 

正则表达式的元字符 - 一剑千秋 - 一剑千秋

 

★下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:


 

正则表达式的元字符 - 一剑千秋 - 一剑千秋

 

★ 常用表达式收录

用户名

/^[a-z0-9_-]{3,16}$/

密码

/^[a-z0-9_-]{6,18}$/

十六进制值

/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

电子邮箱

/^([wd_.-]+)@([wd_-]+.)+w{2,4}$/

/^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/

/^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+$/

URL

/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/

/^(https?://)?([wd_-]+.)+w{2,4}(/[wd.?-_%=&]+)*$/

IP 地址

/((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)/

/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

HTML 标签

/^<([a-z]+)([^<]+)*(?:>(.*)</1>|s+/>)$/

★参考文献:
1,http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx

2,http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F

  评论这张
 
阅读(7)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017