本文不包括任何正则表达式的举例,只是对正则表达式的一些基础语法进行学习。希望通过阅读本文,能够达到读懂正则表达式,可以自己书写简单正则表达式的效果。
本文参考资源为《DEELX 正则表达式引擎》V1.2,手册下载地址为:优快云资源-DEELX 正则表达式引擎
在此之前,一直感觉正则表达式是个很传奇的东西,尤其是使用到JS进行表单数据完整性验证的时候,很喜欢使用正则表达式。
以前在验证一个字符串是否是数字的时候,都喜欢用一些判断,又或者验证手机号码的时候,都喜欢自己写一些if、else语句。
比如说: ^[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
以上内容仅供参考。谢谢!
本文介绍了正则表达式的基础语法,包括各种特殊字符的作用及使用方法,通过实例讲解了如何构建简单的正则表达式,适合初学者快速入门。
2万+

被折叠的 条评论
为什么被折叠?



