加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式元字符

发布时间:2020-12-13 19:49:07 所属栏目:百科 来源:网络整理
导读:正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。元字符既可以是放在 [] 中的任意单个字符(如 [a] 表示匹配单个小写字符 a ),也可以是字符序列(如 [a-d] 表示匹配 a 、 b 、 c 、 d 之间的任意一

正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。元字符既可以是放在 [] 中的任意单个字符(如 [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匹配任何空白字符,相当于 [ fnrtv]

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 ”作为示例字符串,如果正则表达式是“ bd{3}b ”,则仅能匹配 456 。

( 5 )可以使用“ | ”来表示或的关系,例如 [z|j|q] 表示匹配 z 、 j 、 q 之中的任意一个字母。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读