本文最后更新于:March 31, 2022 pm
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。
目录
正则表达式练习
一个使用教程(国外)
限定符
限定符 |
描述 |
示例 |
? |
在问号 前面的字符需要出现0次 或一次 (即可有可无)。 |
tea?:te、tel、tea |
* |
在星号 前面的字符需要出现0次 或多次 。 |
ab*c:ac、abc、abbbc |
+ |
在加号 前面的字符需要出现1次及以上 。 |
ab+c:abc、abbc、abbbc |
{n,m} |
精准匹配。需要匹配的次数。n表示最少多少次,m表示最多多少次。有四种写法。 |
ab{3}c:abbbc(三个b);ab{2,4}c:abbc、abbbc、abbbbc(2~4个b) |
上面只是单个字符,如果是用于多个字符(字符串),用括号括起来即可。如:
(ab)+c:表示ab一起出现1次及以上次数的字符串,会找到 abababc 这种的。
位置限定符
字符 |
描述 |
示例 |
^ |
匹配行首 的位置 |
^Content 匹配位于一行开头的Content |
$ |
匹配行末 的位置 |
;$ 匹配位于一行结尾的分号(;),^$表示匹配空行 |
\< |
匹配单词 开头的位置 |
\<th 匹配 this,但不匹配 ether、tenth等 |
\> |
匹配单词 结尾的位置 |
p\> 匹配leap |
\b |
匹配以单词 开头或结尾的位置 |
\bwe\b 匹配we …或 …. we,不会匹配wee、wwe。精准匹配。 |
\B |
匹配非单词 开头或结尾的位置 |
\Bwe\B 匹配fwef、fwewo,不会匹配we、qwe、wefq |
字符类
字符 |
描述 |
示例 |
. |
匹配任意一个字符 |
abc. |
【】 |
匹配中括号中的任意一个字符 |
【abc】 |
- |
表示范围 |
【0-9a-zA-Z】 |
^ |
位于【】中括号内的开头,匹配除括号中的字符外的任意一个字符 |
[^xy]匹配xy之外的任意一个字符 |
[[:xxx:]] |
grep工具预定义的一些命名字符类(并不是所有地方均可用) |
【:alpha:】匹配一个字母,【:digit:】匹配一个数字 |
元字符
元字符 |
描述 |
. |
匹配除换行符以外的任何字符。 |
\d |
匹配数字:【0-9】 |
\D |
匹配非数字:【^0-9】 |
\s |
匹配空格字符:【\t\r\n\f】 |
\S |
匹配非空格字符:【^\t\r\n\f】 |
\w |
匹配单字字符:【a-zA-Z0-9_】 |
\W |
匹配非单字字符:【^a-zA-Z0-9_】 |
^ |
|
$ |
|
特殊符号
字符 |
描述 |
示例 |
\ |
转义字符,普通字符转义为特殊字符,特殊字符转义为普通字符。 |
普通字符< 写成 \< 表示单词开头位置,特殊字符 . 写成\. 以及\ 写成\\ 就当作普通字符匹配。 |
() |
将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符。 |
(【0-9】{1,3} \. ){3}【0-9】{1,3} 匹配IP地址 |
` |
` |
连接两个子表达式,表示或的关系 |
其他
元字符 |
描述 |
. |
句号匹配任意单个字符除了换行符。 |
[ ] |
字符种类。匹配方括号内的任意字符。 |
[^ ] |
否定的字符种类。匹配除了方括号里的任意字符 |
* |
匹配>=0个重复的在*号之前的字符。 |
+ |
匹配>=1个重复的+号前的字符。 |
? |
标记?之前的字符为可选. |
{n,m} |
匹配num个大括号之前的字符或字符集 (n <= num <= m). |
(xyz) |
字符集,匹配与 xyz 完全相等的字符串. |
` |
` |
\ |
转义字符,用于匹配一些保留的字符 `[ ] ( ) { } . * + ? ^ $ \ |
^ |
从开始行开始匹配. |
$ |
从末端开始匹配. |