正则基础

正则表达式元字符

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

常见的元字符:

.    匹配除 \n 以外的任何字符(注意元字符是小数点)。 

 

[abcde]  匹配 abcde 之中的任意一个字符 

 

[a-h]   匹配 到 之间的任意一个字符 

 

[^fgh]  不与 fgh 之中的任意一个字符匹配 

 

\w  匹配大小写英文字符及数字 到 之间的任意一个及下划线,相当于 [a-zA-Z0-9_] 

 

\W  不匹配大小写英文字符及数字 到 之间的任意一个,相当于 [^a-zA-Z0-9_] 

 

\s  匹配任何空白字符,相当于 [ \f\n\r\t\v] 

 

\S  匹配任何非空白字符,相当于 [^\s] 

 

\d 匹配任何 到 之间的单个数字,相当于 [0-9] 

 

\D  不匹配任何 到 之间的单个数字,相当于 [^0-9] 

 

[\u4e00-\u9fa5]  匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 

正则表达式限定符

上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符。下面是一些常见的限定符 下表中 和 都是表示整数,并且 0

 

*  匹配 到多个元字符,相当于 {0,} 

 

?  匹配 到 个元字符,相当于 {0,1} 

 

{n}  匹配 个元字符 

 

{n,}  匹配至少 个元字符 

 

{n,m}  匹配 到 个元字符 

 

+  匹配至少 个元字符,相当于 {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] 表示匹配 、 、 之中的任意一个字母。

 

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值