作为一个技术,时常会碰到正则表达式相关的东西,很多时候忙着赶进度,都是在网上找一个能够解决的正则表达式,或是换另外一种方法实现,一直没有系统地了解正则表达式,今天终于有时间又有闲情来详细地看看正则表达式的语法,不求成为高手,最起码碰到问题能用正则表达式解决,或是拿到一个正则表达式,起码能够看懂里面的意思......
“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。
正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。
下表包含了单字符元字符的列表以及它们在正则表达式中的行为。
说明 |
---|
若要匹配这些特殊字符之一,必须首先转义字符,即,在字符前面加反斜杠字符 (\)。例如,若要搜索“+”文本字符,可使用表达式“\+”。 |
行为 |
示例 |
|
---|---|---|
* |
零次或多次匹配前面的字符或子表达式。 等效于{0,}。 |
zo*与“z”和“zoo”匹配。 |
+ |
一次或多次匹配前面的字符或子表达式。 等效于{1,192); border-collapse:collapse; padding:3px; word-break:normal!important"> zo+与“zo”和“zoo”匹配,但与“z”不匹配。 |
|
? |
零次或一次匹配前面的字符或子表达式。 等效于{0,1}。 当 ?紧随任何其他限定符(*、+、?、{n}、{n,} 或 {n,m})之后时,匹配模式是非贪婪的。非贪婪模式匹配搜索到的、尽可能少的字符串,而默认的贪婪模式匹配搜索到的、尽可能多的字符串。 |
zo?与“z”和“zo”匹配,但与“zoo”不匹配。 o+?只与“oooo”中的单个“o”匹配,而o+与所有“o”匹配。 do(es)?与“do”或“does”中的“do”匹配。 |
^ |
匹配搜索字符串开始的位置。如果标志中包括m(多行搜索)字符,^ 还将匹配 \n 或 \r 后面的位置。 如果将 ^ 用作括号表达式中的第一个字符,则会对字符集求反。 |
^\d{3}与搜索字符串开始处的 3 个数字匹配。 [^abc]与除 a、b 和 c 以外的任何字符匹配。 |
$ |
\d{3}$与搜索字符串结尾处的 3 个数字匹配。 |
|
. |
匹配除换行符 \n 之外的任何单个字符。若要匹配包括 \n 在内的任意字符,请使用诸如[\s\S]之类的模式。 |
a.c与“abc”、“a1c”和“a-c”匹配。 |
[] |
标记括号表达式的开始和结尾。 |
[1-4]与“1”、“2”、“3”或“4”匹配。[^aAeEiIoOuU]与任何非元音字符匹配。 |
{} |
标记限定符表达式的开始和结尾。 |
a{2,3}与“aa”和“aaa”匹配。 |
@H_537_403@() |
标记子表达式的开始和结尾。可以保存子表达式以备将来之用。 |
A(\d)与“A0”至“A9”匹配。保存该数字以备将来之用。 |
| |
指示在两个或多个项之间进行选择。 |
z|food与“z”或“food”匹配。(z|f)ood与“zood”或“food”匹配。 |
/ |
/abc/gi是与“abc”匹配的 JScript 文本正则表达式。g(全局)标志指定查找模式的所有匹配项,i(忽略大小写)标志使搜索不区分大小写。 |
|
\ |
将下一字符标记为特殊字符、文本、反向引用或八进制转义符。 |
\n与换行符匹配。\(与“(”匹配。\\与“\”匹配。 |
大多数特殊字符在括号表达式内出现时失去它们的意义,并表示普通字符。有关更多信息,请参见匹配字符的列表中的“括号表达式中的字符”。