正则表达式详解入门【原创】

来源:互联网 发布:有哪些高仿的淘宝店 编辑:程序博客网 时间:2024/04/27 21:33

本文不包括任何正则表达式的举例,只是对正则表达式的一些基础语法进行学习。希望通过阅读本文,能够达到读懂正则表达式,可以自己书写简单正则表达式的效果。

本文参考资源为DEELX 正则表达式引擎》V1.2,手册下载地址为:CSDN资源-DEELX 正则表达式引擎

在此之前,一直感觉正则表达式是个很传奇的东西,尤其是使用到JS进行表单数据完整性验证的时候,很喜欢使用正则表达式。

以前在验证一个字符串是否是数字的时候,都喜欢用一些判断,又或者验证手机号码的时候,都喜欢自己写一些ifelse语句。

比如说: ^[0-9]*[1-9][0-9]*$,表示的是正整数。当输入任何字符串或者负数、浮点数、符号的时候,验证都是不能通过的。

有比如说: ^[//w-]+(//.[//w-]+)*@[//w-]+(//.[//w-]+)+$,表示电子邮箱,当输入的字符串不符合电子邮箱的规则的时候,验证也是不能通过的。

很奇怪吧,这些奇怪的字符组合起来之后居然能够表达出如此之大的含义。好吧,现在我们来一起研究这些字符的含义都包含哪些。

数字表示:[0-9]

字母表示:[a-zA-Z]

简单的转义字符:

字符

说明

^

匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "/^"

$

匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "/$"

( )

标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "/(" "/)"

[ ]

用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "/[" "/]"

{ }

修饰匹配次数的符号。要匹配大括号,请使用 "/{" "/}"

.

匹配除了换行符(/n)以外的任意一个字符。要匹配小数点本身,请使用 "/."

?

修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "/?"

+

修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "/+"

*

修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "/*"

|

左右两边表达式之间 "" 关系。匹配 "|" 本身,请使用 "/|"

    字符集合列表:

字符集合

说明

.

小数点可以匹配除了换行符(/n)以外的任意一个字符

/w

可以匹配任何一个字母或者数字或者下划线

/W

W大写,可以匹配任何一个字母或者数字或者下划线以外的字符

/s

可以匹配空格、制表符、换页符等空白字符的其中任意一个

/S

S大写,可以匹配任何一个空白字符以外的字符

/d

可以匹配任何一个 0~9 数字字符

/D

D大写,可以匹配任何一个非数字字符

    匹配次数限定符:

限定符

说明

{n}

表达式固定重复n次,比如:"/w{2}" 相当于 "/w/w"

{m, n}

表达式尽可能重复n次,至少重复m次:"ba{1,3}"可以匹配 "ba""baa""baaa"

{m, }

表达式尽可能的多匹配,至少重复m次:"/w/d{2,}"可以匹配 "a12","x456"...

?

表达式尽可能匹配1次,也可以不匹配,相当于 {0, 1}

+

表达式尽可能的多匹配,至少匹配1次,相当于 {1, }

*

表达式尽可能的多匹配,最少可以不匹配,相当于 {0, }

 

从上面我们可以自己定义一些简单的正则表达式

IP地址:[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}

字符串:^[A-Za-z]+$  //26个英文字母组成的字符串

URL地址:^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$

(其他一些常用的正则表达式,可以通过百度、google搜索得到,本文不做罗列。)

^[A-Za-z] 表示匹配有字母开始的字符串。假如12admin,那么匹配是不会通过的。

 

解读URL

URL地址一般多是http,ftp,https等,以字母开头,并包含”://”;

那么:

“^[a-zA-z]+” :表示匹配字符串以字母开始,”+”出现一次或者多次.

“://”:属于必须的部分,标注协议与地址的分开

“(/w+(-/w+)*)”:以字母/数字/下划线开始,后面可包含多个字符。

“(/.(/w+(-/w+)*))*”:句点属于分隔符号,并且不以句点结尾

 

可匹配的URL格式包含:

http://www.baidu.com

http://www.google.com.cn

ftp://name

f://y

 

 

以上内容仅供参考。谢谢!

原创粉丝点击