2016年12月31日,元旦假期的第一天,闲来无事学点东西,为以后的求职做点准备!
之前对正则表达式有了些许了解,但是当真的想使用它去做匹配简单的手机号码的时候还得去百度或者Google,所以先把这一点解决了吧!
正则表达式:检索或替换具有某种模式(规则)的文本(度娘给的解释)
这个解释我看到的是最后两个字 “文本”,好吧既然知道是文本,那Ok,这就是一系列的字符串喽,首先不要胆怯这个东西,继续让下看呗
正则表达式是由普通字符串(a-z,0-9,A-Z等)和特殊字符串(这些普通字符串又称为元字符)组成。
除元字符之外的所有打印字符和非打印字符。那什么叫打印字符呢,简单来说就是可以呈现在显示屏或者纸张上的字符(a、b、c之类的),那么非打印字符就可以知道了。下面列出一些非打印字符的转义序列,有些真的是经常见到,但是你不一定知道那叫非打印字符。
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\s | 任何的空白符,包括空白符,换页符,制表符 |
\S | 任何非空白字符 注意S要大写哦 |
\t | 水平制表符 |
\v | 垂直制表符 |
特殊字符就是在我们的正则式里面有些特殊意义的字符,这些字符虽然属于打印字符,但是我们用他们去做一些特殊的事情。
举个例子:在使用Windows的CMD的时候,去查找某一个路径下后缀名是txt的文件时,可以使用dir *.txt 这里的*就是一个特殊字符,表示查找所有的字符。
下面列出一些特殊的字符以及他们表达的意思
$ | 某个字符串的结尾位置 |
() | 某一个子表达式的起始以及结束位置。说到这有一点需要注意,其实正则表达式和我们的算数表达式很像,会有优先级和子表达式。想想我们在做算数表达式的时候小括号,中括号之类的用法。 |
* | 匹配前面的子表达式0次或多次,这的意思是前面的子表达式可以重复0次或多次 |
+ | 匹配前面的子表达式1次或多次 |
? | 匹配前面的子表达式0次或1次,有非贪婪的用法(后面介绍) |
. | 匹配除换行符\n之外的所有单字符 |
[] | 标记一个中括号表达式的开始和结束 |
\ | 标记下一个字符为特殊字符或原义字符,例如在‘n‘之前加‘\‘表示\n换行符 |
^ | 表示一个字符串开始的位置,在中括号表达式中表示‘非‘就是不匹配子表达式 |
{} | 标记限定表达式的开始或者结束位置 |
| | 在两项中选择某一项,这两项位于|的两侧 |
限定符用来指明某一个子表达式或者组件出现多少次才满足匹配条件
* | 匹配0次或多次 |
+ | 匹配1次或多次 |
? | 匹配0次或1次 |
{n} | 匹配确定的n次 n>=0 |
{n,} | 匹配确定的n次或多次,最少n次 n>=0 |
{n,m} | 最少匹配n次最多匹配m次 ,n<m,n>=0 |
这篇讲了一些基础的普通字符和元字符,下一篇继续。
原文:http://www.cnblogs.com/Absolete/p/6241677.html