标签:条件 选择 许可证 全局 sde 不可 练习 multi 注意
标题: 正则表达式语法学习和在线练习
作者: 梦幻之心星    sky-seeker@qq.com
标签: [#正则表达式,#语法,#学习,#练习]
目录: [语法]
日期: 2021-01-26
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
| 字符 | 描述 | 
|---|---|
[ABC] | 
匹配字符集合中的任意一个字符 | 
[^ABC] | 
匹配字符集合中未包含的任意字符 | 
[A-Z] | 
匹配指定范围内的任意字符 | 
[^A-Z] | 
匹配任何不在指定范围内的任意字符 | 
非打印字符也可以是正则表达式的组成部分。
| 字符 | 描述 | 
|---|---|
\cx | 
匹配由x指明的控制字符。x的值必须为 A-Z 或 a-z 之一 | 
\f | 
匹配一个换页符。等价于 \x0c 和 \cL | 
\n | 
匹配一个换行符。等价于 \x0a 和 \cJ | 
\r | 
匹配一个回车符。等价于 \x0d 和 \cM | 
\t | 
匹配一个制表符。等价于 \x09 和 \cI | 
\v | 
匹配一个垂直制表符。等价于 \x0b 和 \cK | 
\s | 
匹配任何空白字符,包括空格、制表符、换页符等 | 
\S | 
匹配任何非空白字符 | 
\w | 
匹配字母、数字、下划线、汉字 | 
\W | 
匹配非字母、数字、下划线、汉字 | 
\d | 
匹配一个数字字符。等价于 [0-9] | 
\D | 
匹配一个非数字字符。等价于 [0-9] | 
匹配特殊字符时必须进行转义,即放置反斜杠字\在特殊字符前面。
| 特别字符 | 描述 | 
|---|---|
\ | 
将下一个字符标记为一个特殊字符 | 
. | 
匹配除换行符(\n、\r)之外的任何单个字符 | 
| | | 匹配二者之一 | 
限定符用来指定正则表达式的一个给定组件的出现次数。
| 字符 | 描述 | 
|---|---|
* | 
匹配前面的子表达式零次或多次。等价于 {0,} | 
+ | 
匹配前面的子表达式一次或多次。等价于 {1,} | 
? | 
匹配前面的子表达式零次或一次。等价于 {0,1} | 
{n} | 
n 是一个非负整数。匹配确定的 n 次 | 
{n,} | 
n 是一个非负整数。至少匹配 n 次 | 
{n,m} | 
m 和 n 均为非负整数,其中 n <= m 。最少匹配 n 次且最多匹配 m 次 | 
捕获分组的捕获匹配结果可以通过$n(表示第 n 个捕获组的内容)查看。
| 字符 | 描述 | 
|---|---|
(exp) | 
匹配 exp 并捕获这一匹配 | 
(?:exp) | 
匹配 exp 但不捕获匹配结果。也就是说这是一个非捕获匹配 | 
exp1(?=exp2) | 
正向肯定预查。用于查找 exp2 前面的 exp1 | 
exp1(?!exp2) | 
正向否定预查。用于查找后面不是 exp2 的 exp1 | 
(?<=exp2)exp1 | 
反向肯定预查,与正向肯定预查类似,只是方向相反。用于查找 exp2 后面的 exp1 | 
(?<!exp2)exp1 | 
反向否定预查,与正向否定预查类似,只是方向相反。用于查找前面不是 exp2 的 exp1 | 
定位符将正则表达式固定到行首或行尾,不能与限定符一起使用。
| 字符 | 描述 | 
|---|---|
^ | 
匹配输入字符串开始的位置 | 
$ | 
匹配输入字符串结尾的位置 | 
\b | 
匹配一个单词边界,即单词和空格间的位置 | 
\B | 
匹配非单词边界 | 
用于指定额外的匹配策略。位于表达式之外
| 修饰符 | 含义 | 描述 | 
|---|---|---|
i | 
ignore  | 
将匹配设置为不区分大小写 | 
g | 
global  | 
全局匹配,查找所有的匹配项。 | 
m | 
multiline | 
多行匹配,使边界字符 ^ 和 $ 匹配每一行的开头和结尾 | 
s | 
特殊字符圆点 . 中包含换行符 \n | 
默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。 | 
相同优先级的从左到右进行运算,不同优先级的运算先高后低。
| 运算符 | 描述 | 
|---|---|
\ | 
转义符 | 
(), (?:), (?=), [] | 
圆括号和方括号 | 
*, +, ?, {n}, {n,}, {n,m} | 
限定符 | 
| ^, $, \任何元字符、任何字符 | 定位点和序列 | 
| | | "或"操作字符具有高于替换运算符的优先级 | 
* 和 + 都是贪婪匹配,会匹配尽可能多的字符。? 可以实现懒惰匹配,匹配尽可能少的字符。版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
博客园地址:https://www.cnblogs.com/Sky-seeker
微信公众号:关注微信公众号,获取即时推送

标签:条件 选择 许可证 全局 sde 不可 练习 multi 注意
原文地址:https://www.cnblogs.com/Sky-seeker/p/14331870.html