正则表达式详解入门【原创】
来源:互联网 发布:有哪些高仿的淘宝店 编辑:程序博客网 时间:2024/04/27 21:33
本文不包括任何正则表达式的举例,只是对正则表达式的一些基础语法进行学习。希望通过阅读本文,能够达到读懂正则表达式,可以自己书写简单正则表达式的效果。
本文参考资源为《DEELX 正则表达式引擎》V1.2,手册下载地址为:CSDN资源-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
以上内容仅供参考。谢谢!
- 正则表达式详解入门【原创】
- 【原创】一些正则表达式
- 详解一个自己原创的正则匹配IP的表达式
- JAVA正则表达式原创教程
- 原创:JSON入门详解
- 原创:Jquery入门详解
- 原创:JSON入门详解
- 原创:JSON入门详解
- 原创:Jquery入门详解
- 正则表达式入门
- 正则表达式[入门]
- 正则表达式入门
- 正则表达式入门
- 正则表达式入门
- 入门正则表达式例子
- 正则表达式入门
- 正则表达式入门
- 正则表达式入门文档
- Prezi - the best presentation tool
- 我的转型
- Silverlight实例教程 - Validation用户提交数据验证捕获
- 边缘检测之:小核值相似区域(SUSAN)算法
- 求图的所有强连通分量 ---- tarjan算法
- 正则表达式详解入门【原创】
- ATI图形芯片ABC
- 自由了
- 浏览器对Jre的支持
- ajax 回传 oa
- 获取网线连接状态和上网方式
- 唯美的古风句子
- BlackBerry应用程序之间通过persistant store传递数据
- C++中获得在App或者Doc中获得当前View的指针