正则表达式
000x00 正则表达式介绍
正则表达式是对一组字符串的描述,通过这种描述可以匹配到我们想要的字符串,正则表达式通常和一些函数配合使用来对字符串进行查找、修改、删除等功能。
001x00 正则表达式语法
正则表达式由2部分构成:普通字符和元字符。
普通字符没有什么特殊含义,就代表着字符本身;元字符则是描述了一组符合条件的字符,例如元字符“ \d ”就表示匹配一个0-9的数字,它可以用“ [0-9] ”来代替。
001x01 常用元字符介绍
-
\d :匹配任意一个十进制数字,等价于 [0-9]
-
\D:匹配除了任意一个十进制数字以外的字符,等价于 [^0-9]
-
\s:匹配任意一个空白字符,例如换行符、分页符、制表符
-
\S:匹配除了任意一个空白字符以外的字符
-
\w:匹配任意一个字母、数字或下划线
-
\W:匹配除了任意一个字母、数字、或下划线以外的字符
-
. :匹配除了换行符以外的任意一个字符
-
* :匹配0次、1次或多次(任意次)其前面的字符
-
+:匹配1次或多次其前面的字符
-
?:匹配0次或1次其前面的字符
-
{n}:表示其前面的字符正好出现n次
-
{n,}:表示其前面的字符至少出现n次
-
{n,m}:表示其前面的字符出现n-m次
-
^或\A:表示一个字符串的开始
-
$或\Z:表示一个字符串的结束
-
|:匹配两个或者多个模式
-
[]:匹配方括号中的任意一个字符
-
[^]:匹配除了方括号中字符的任意一个字符
-
():括号中的内容可以作为一个小的正则表达式被匹配。
-例如正则表达式/t.st/仅仅可以匹配到字符串“test”,而正则表达式/t(.)st/可以匹配到字符串“test”和"e"。 -
\数字:和括号配合使用,写在括号后面,表示匹配括号所匹配的内容。假设一个正则表达式为/t(e)st\1/,则正则表达式匹配的内容为字符串“teste”
002x00 正则表达式定界符
正则表达式要写在定界符之中,就如同php中的字符串要被引号包裹。常用的定界符为“ / ",除了字母、数字、反斜杠()以外的字符都可以作为正则表达式的定界符。
003x00 正则表达式模式修正符
模式修正符是对正则匹配范围的扩大,写在定界符之后。
例如:正则表达式:/text/ 作用:仅匹配字符串“text”(区分大小写)。
正则表达式/text/i 作用:匹配字符串"text"(区分大小写)
003x01 常用的模式修正符
- i:不区分大小写
- u:不进行贪婪匹配
- s:元字符" . "可以匹配到所有的字符,包括换行符。
- m:多行匹配。使用条件:1. 目标字符串包括换行符(\n) 2.正则表达式中出现^或$