晓夏

北漂的女孩

Good Luck To You!

正则表达式元字符

浏览量:518

常见的元字符:

   匹配除 \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

 

匹配 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 之中的任意一个字母。




神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。