正则表达式

来源:互联网 发布:将软件添加到磁贴 编辑:程序博客网 时间:2024/06/14 13:32

特殊字符

$       匹配输入字符串的结尾位置

()      标记一个自表达式的开始和结束位置

.       除换行符“\n”之外的任何单字符

*       匹配前面的子表达式0或多次

+       匹配前面的子表达式1或多次

?       匹配前面的子表达式0或1次

[]      标记一个中括号表达式的开始和结束位置

\       将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

^       匹配输入字符串的开始位置。如在中括号表达式中使用,则表示不接受该字符集合

{}      标记限定符表达式的开始和结束位置

|       表示或,指明该字符左右表达式之间可有一个选择


注:如需要匹配这些特殊字符,需进行转义”,即在字符前面加个反斜杠字符’ \’


限定符

*       匹配前面的子表达式0或多次

+       匹配前面的子表达式1或多次

?       匹配前面的子表达式0或1次

{n}     n是正整数,匹配确定n次

{n,}        n是正整数,匹配确定至少n次,’{0,}’等价于’*’, ’{1,}’等价于’+’

{n,m}   n和m为正整数且n<=m,匹配确定最少n次,最多m次,’{0,1}’等价于’?’

定位符

^           匹配输入字符串开始的位置,如果设置了 RegExp 对象的 Multiline 属性,^ 还会与\n 或 \r 之后的位置匹配。

$           匹配输入字符的结尾的位置,如果设置了 RegExp 对象的 Multiline 属性,$ 还会与\n 或 \r 之前的位置匹配。

\b      匹配一个字边界,即字与空格间的位置

\B      非字边界匹配

 

注:定位符不能与限定符一起使用。

 

可查看正则表达式的菜鸟教程:http://www.runoob.com/regexp/regexp-tutorial.html

在线工具:http://c.runoob.com/front-end/854


匹配手机号码:

现有手机号段:

移动号段: 134、135、136、137、138、139、150、151、152、157、158、159、178、182、183、184、187、188

联通号段:130、131、132、145、147、155、156、176、185、186

电信号段:133、153、173、177、180、181、189

虚拟运营商号段:170、171

整理上面的手机号码段可得:

13开头的第三位数字包含0-9,匹配"13[0-9]"

14开头的第三位数字包含4、5,匹配"14[45]"

15开头的第三位数字不包含4的其他9个数字,匹配"15[0-35-9]"

17开头的第三位数字包含0、1、6、7、8,匹配"17[01678]"

18开头的第三位数字包含0-9,匹配"19[0-9]"

最后其他数字就简单了,只有八位数字,包含0-9,匹配" [0-9]{8}$"或"\d{8}$"

因此,手机号码的正则表达式匹配字符串如下所示:

"^(13[0-9]|14[57]|15[0-35-9]|17[01678]|18[0-9])[0-9]{8}$"

或 "^(13[0-9]|14[57]|15[0-35-9]|17[01678]|18[0-9])\d{8}$"


匹配IP地址:

IP地址的格式:[0,255].[0,255].[0,255].[0,255]

这里四段的数字都是0-255之间,这个区间可分为五种情况,如下:

一位数时,可为09,即[0,9],匹配”\d””[0-9]”

两位数时,十位数为19,个位数为09,即[10,99],匹配”[1-9]\d”

三位数且百位数为1时,十位数与个位数可为09,即[100,199],匹配”1\d\d”

三位数且百位数为2时,十位数为04,个位数为0-9,即[200,249],匹配”2[0-4]\d”

三位数且百位数为2时,十位数为5,个位数为0-5,即[250,255],匹配”25[0-5]”

因此,IP地址的正则表达式匹配字符串如下所示:

^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$


匹配邮箱:

 

 未完待续,抽空补充完整