一直也没有好好的学习一下正则,最近接触的比较多,就打算好好学习一下。希望朋友们共享这个学习过程!
正则表达式是一种数学形式,他是用来描述“正则集代数”的表达式。具体到应用上,正则表达式描述了一种字符串匹配的模式。我的理解就是用正则表达式描述一定字符串的集合。也可以认为她是字符串的抽象表达形式。因为我们可以用一个正则表达式表示一类字符串供我们使用。
在学习之前我们先看一下正则表达式的例子,也可以在实际中使用这些表达式,当然如果你需要的话。
空(null) | /^[\s\n\r\t]*$/ |
整数 | /^[0-9]*[1-9][0-9]*$/ |
浮点数 | /^([+-])?(0|([1-9][0-9]*))([.][0-9]+)?$/ |
货币 | /^([+-])?(0|[1-9][0-9]*)(.[0-9]{1,2})?$/ |
电话号码 | /^[0-9]{3,4}[-][0-9]{6,8}([-][0-9]{1,6})?$/ |
手机号码 | /^[0-9]{11}$/ |
电子邮件 | /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ |
网页地址 | /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?$/ |
刚看到这些,我真的有点迷茫,不知道表示的是什么意思,我打算学习一下基础知识,然后在理解这字符表达的含义。
首先看一下常用的字符的转义规则:
\ 0 nul \ f 换页符
\ t 制表符 \ r 回车符
\ n 换行符
\ v 垂直制表符
其次是特殊的字符对应的转义序列(在正则表达式所表示的意思):
[...] 位于括号内的任意字符 例如 [abc] 匹配字符a、b、c
[^...] 匹配位于括号之外的字符 例如 [^abc] 匹配的字符不包含a、b、c
. 点表示任意字符
\w 任何ASCII单字字符 等价于[a-zA-Z0-9]
\W 任何非ASCII单字字符 等价于[^a-zA-Z0-9]
\s 任何Unicode空白字符
\S 任何非Unicode空白字符
\d 任何ASCII数组 等价于[0-9]
\D 任何ASCII之外的任何字符 等价于[^0-9]
\b 退格直接量
再次了解一下正则表达式中重复、分组、选择和引用的定义:
重复:正则表达式通过一些字符表达具有循环性质的模式。以下是具体的说明:
* 表示0次或多次重复
+ 表示1次或多次重复
? 表示0次或次重复 例如 /ab?/ ==> a 或者ab
{n} 匹配一个字符的n次重复
{n,m} 匹配一个字符的m到n次重复
{n,} 匹配一个重复次数大于n的字符串