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

正则表达式——从匹配北美电话号码和邮箱地址学习

发布时间:2020-12-14 01:43:28 所属栏目:百科 来源:网络整理
导读:一般北美电话号码的格式为: 999-999-9999 或者999x999x9999 (x表示任意字符) 用字符组来匹配: [0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] 用字符组简写式: ddd-ddd-dddd 括选文字符: ^((d{3})|^d{3}[.-]?)?d{3}[.-]?d{4}$

一般北美电话号码的格式为:

999-999-9999

或者999x999x9999 (x表示任意字符)

用字符组来匹配:

[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]


用字符组简写式:

ddd-ddd-dddd


括选文字符:

^((d{3})|^d{3}[.-]?)?d{3}[.-]?d{4}$


第一个^表示电话号码会出现在一行的起始位置

左括号{为捕获分组的起始符

(表示左括号本身(转义字符)

d匹配一位数字

d后的{3}是量词,表示匹配三位数字

}匹配右括号本身(转义字符)

|表示选择,也就是从多个可选项中选择多个

^匹配行起始位置

d匹配一位数字

{3}表示匹配三位数字的量词

[.-]?匹配一个可选的点号或者连字符

右括号)为捕获分组的结束符

?表示分组可选,即分组中的前缀可有可无

d匹配一位数字

{3}表示匹配三位数字的量词

[.-]?匹配另一个可选的点号或者连字符

d匹配一位数字

{4}是表示匹配四位数字的量词

$匹配行结束位置

下面再说一个匹配北美电话号码的正则表示式:

^(?(?:d{3}))?[.-]?(?d{3})[.-]?(?:d{4})$

其中(?:xxxx)表示的是非捕获分组,非捕获分组不会将其内容存储在内存中,可以带来更高的性能。


匹配电子邮件地址的正则表达式:

^([w-.!#$%&'*-+=/?^_{|}~]+)@((?:w+.)+)(?:[a-zA-Z]{2,4})$

预定义字符集:

w匹配一个单词字符,相当于[a-zA-Z0-9]

W匹配一个非单词字符[^w]

d表示匹配一个数字[0-9]

D匹配一个非数字[^d]

s匹配一个空白字符[<空格> trnfv]

S匹配一个非空白字符[^s]


量词:

*匹配前一个字符0或无限次

+匹配前一个字符1次或者无限次

?匹配前一个字符0或1次

{m}匹配前一个字符m次

{m,n}匹配前一个字符m-n次

边界

^匹配字符串开头,在多行模式中匹配每一行的开头

$匹配字符串末尾,在多行模式中国匹配每一行的末尾

A仅匹配字符串开头

Z仅匹配字符串末尾

b匹配w和W之间

B匹配[^b]

[]一般表示字符集

{}一般表示量词

()一般表示分组

(?:)一般表示非捕获分组

(编辑:李大同)

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

    推荐文章
      热点阅读