正则表达式由一些普通字符和一些元字符(Metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。
在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"123testing"等字符串,但是不能匹配"Testing"。
要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。
元字符 | 描述信息 |
. | 匹配任意单个字符 |
[] | 指定范围内的单个字符//[abcd]只要含有abcd任意字符即满足条件 |
[^] | 指定范围之外的单个字符//[^abcd]不能含有abcd任意字符即满足条件 |
^[] | 定位至行首//^[a-z]以小写字母开头的行 |
* | |
+ | 表示重复前一个字符1到无穷多次,至少1次 |
? | 匹配前一个字符0或1次,注意和通配符的区别。 |
\{\} | 表示匹配的准确次数.\{n,m\}:匹配次数n到m次;\{n,\}:匹配次数至少n次;\{n\}:匹配次数为n次\{\} |
| |
x|y 匹配x或者y |
\b |
锚定单词边界(同“\<”和“\>”。\<锚定单词词首的,\<ro 匹配以ro开头的单词 \>锚定单词词尾的,er\>匹配以er结束的单词) \broot\b匹配root单词 |
\B | 匹配非边界单词er\B匹配不以er结尾的单词 |
\(\) | 分组,将 \( 和 \) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。 |
$ | 结束表示符。\.$以.结尾的行,注意\是转义符 |
\ | 转义符,去掉字符的特殊含义,使其成为普通字符。例如上面,.原本是特殊字符,表示任意单个字符,使用\转义之后,其就表示本身,就表示一个句点"." |
[[:upper:]] | 表示[A-Z] |
[[:alnum:]] | 表示[0-9a-zA-Z] |
[[:lower:]] | 表示[a-z] |
[[:space:]] | 表示空格或者tab键 |
[[:digit:]] | 表示[0-9] |
[[:alpha:]] | 表示[a-zA-Z] |
[[:punct:]] | 表示标点符号 |
以上是一些我们平时经常能用到的元字符以及其代表的意义,我也是一个菜鸟,欢迎大家进行补充
原文链接:https://www.f2er.com/regex/361670.html