正则表达式

1.正则表达式分类

正则表达式:REGEXP,REGular EXPression。
正则表达式分为两类:

  • Basic REGEXP(基本正则表达式)
  • Extended REGEXP(扩展正则表达式)

2.基本正则表达式

元字符

.           //任意单个字符
[]          //匹配指定单位外的任意单个字符
[^]         //匹配指定范围外的任意单个字符

匹配次数

*           //匹配其前面的任意单个字符任意次
.*          //任意长度的任意字符
\?          //匹配其前面的任意单个字符1次或0次
\+          //匹配其前面的任意单个字符至少一次
\{m,n\}     //匹配其前面的任意单个字符至少m次,至多n次

位置锚定

^           //锚定行首,此字符后面的任意单个字符必须出现在行首
$           //锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$          //空白行
\<或\b 锚定词首,其后面的任意单个字符必须作为单词首部出现 \>&#x6216;\b        //&#x9501;&#x5B9A;&#x8BCD;&#x5C3E;&#xFF0C;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x5FC5;&#x987B;&#x4F5C;&#x4E3A;&#x5355;&#x8BCD;&#x5C3E;&#x90E8;&#x51FA;&#x73B0;
</或\b>
\(\)
&#x4F8B;&#xFF1A;\(ab\)*
//&#x540E;&#x5411;&#x5F15;&#x7528;
    \1      //&#x5F15;&#x7528;&#x7B2C;&#x4E00;&#x4E2A;&#x5DE6;&#x62EC;&#x53F7;&#x4EE5;&#x53CA;&#x4E0E;&#x4E4B;&#x76F8;&#x5E94;&#x7684;&#x53F3;&#x62EC;&#x53F7;&#x6240;&#x5305;&#x62EC;&#x7684;&#x6240;&#x6709;&#x5185;&#x5BB9;
    \2      //&#x5F15;&#x7528;&#x7B2C;&#x4E8C;&#x4E2A;&#x5DE6;&#x62EC;&#x53F7;&#x4EE5;&#x53CA;&#x4E0E;&#x4E4B;&#x5BF9;&#x5E94;&#x7684;&#x53F3;&#x62EC;&#x53F7;&#x6240;&#x5305;&#x62EC;&#x7684;&#x6240;&#x6709;&#x5185;&#x5BB9;

示例:

//&#x8FC7;&#x6EE4;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;
[root@localhost zxr]# ls
1  2  3  4  5  6  7  8  9
[root@localhost zxr]# ls |grep '^.$'
1
2
3
4
5
6
7
8
9

//&#x5339;&#x914D;&#x6307;&#x5B9A;&#x8303;&#x56F4;&#x5185;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;
[root@localhost zxr]# ls |grep '^[15]$'
1
5
[root@localhost zxr]# ls |grep '^[1-3]$'
1
2
3

//&#x5339;&#x914D;&#x6307;&#x5B9A;&#x8303;&#x56F4;&#x5916;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;
[root@localhost zxr]# ls |grep '^[^123]$'
4
5
6
7
8
9

//&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x4EFB;&#x610F;&#x6B21;
[root@localhost zxr]# ls |grep '^abc*$'
abc
abccc
abccccccc

//&#x5339;&#x914D;&#x4EFB;&#x610F;&#x957F;&#x5EA6;&#x7684;&#x4EFB;&#x610F;&#x5B57;&#x7B26;
[root@localhost zxr]# ls |grep '^a.*bc$'
abbc
abc

[root@localhost zxr]# ls |grep '^ab.*c$'
abbbbbbbbbcccccccc
abbbbbcccccc
abbc
abbcc
abc
abccc
abccccccc

[root@localhost zxr]# ls |grep '^abc.*$'
abc
abccc
abccccccc

//&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;1&#x6B21;&#x6216;&#x8005;0&#x6B21;
[root@localhost zxr]# ls | grep '^a\?b$'
ab
b

//&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x81F3;&#x5C11;m&#x6B21;&#xFF0C;&#x81F3;&#x591A;n&#x6B21;
[root@localhost zxr]# ls |grep '^a\+bc$'
aaaabc
abc

//&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x81F3;&#x5C11;m&#x6B21;&#xFF0C;&#x81F3;&#x591A;n&#x6B21;
[root@localhost zxr]# ls |grep '^a\{1,6\}bc$'
aaaabc
abc

//&#x4EE5;a&#x5F00;&#x5934;
[root@localhost zxr]# ls |grep '^a'
aaaabc
aabbbbbccccc
aabbcc
abbc
abbcc
abc
abccc

//&#x4EE5;c&#x7ED3;&#x5C3E;
[root@localhost zxr]# ls |grep 'c$'
aaaabbbccc
aaaabc
abc
abccc
abccccccc

//&#x951A;&#x5B9A;&#x8BCD;&#x9996;
[root@localhost zxr]# cat a
awswswsw
qweasd
admin
alog
loga
[root@localhost zxr]# grep '\<a' a awswswsw admin alog 锚定词尾 [root@localhost zxr]# grep 'a\>' a
loga

//&#x951A;&#x5B9A;&#x8BCD;&#x9996;&#xFF0C;&#x548C;&#x8BCD;&#x5C3E;
[root@localhost zxr]# grep '\<admin\>' a
admin
</admin\></a'>

3.扩展正则表达式

字符匹配

.       //&#x5339;&#x914D;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;
[]      //&#x5339;&#x914D;&#x6307;&#x5B9A;&#x8303;&#x56F4;&#x5185;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;
[^]     //&#x5339;&#x914D;&#x6307;&#x5B9A;&#x8303;&#x56F4;&#x5916;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;

&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x5339;&#x914D;&#x76F8;&#x5173;
[[:alpha:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x5927;&#x5C0F;&#x5199;&#x5B57;&#x6BCD;&#x3002;
[[:lower:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x5C0F;&#x5199;&#x5B57;&#x6BCD;&#x3002;
[[:upper:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x5927;&#x5199;&#x5B57;&#x6BCD;&#x3002;
[[:digit:]]  &#x8868;&#x793A;0&#x5230;9&#x4E4B;&#x95F4;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x6570;&#x5B57;&#xFF08;&#x5305;&#x62EC;0&#x548C;9&#xFF09;&#x3002;
[[:alnum:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x6570;&#x5B57;&#x6216;&#x5B57;&#x6BCD;&#x3002;
[[:space:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x7A7A;&#x767D;&#x5B57;&#x7B26;&#xFF0C;&#x5305;&#x62EC;"&#x7A7A;&#x683C;"&#x3001;"tab&#x952E;"&#x7B49;&#x3002;
[[:punct:]]  &#x8868;&#x793A;&#x4EFB;&#x610F;&#x6807;&#x70B9;&#x7B26;&#x53F7;&#x3002;
[^[:alpha:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x5B57;&#x6BCD;&#x5B57;&#x7B26;&#x3002;
[^[:lower:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x5C0F;&#x5199;&#x5B57;&#x6BCD;&#x5B57;&#x7B26;&#x3002;
[^[:upper:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x5927;&#x5199;&#x5B57;&#x6BCD;&#x5B57;&#x7B26;&#x3002;
[^[:digit:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x6570;&#x5B57;&#x5B57;&#x7B26;&#x3002;
[^[:alnum:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x6570;&#x5B57;&#x975E;&#x5B57;&#x6BCD;&#x5B57;&#x7B26;&#x3002;
[^[:space:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x7A7A;&#x767D;&#x5B57;&#x7B26;&#x3002;
[^[:punct:]]  &#x8868;&#x793A;&#x5355;&#x4E2A;&#x975E;&#x6807;&#x70B9;&#x7B26;&#x53F7;&#x5B57;&#x7B26;&#x3002;
[0-9]&#x4E0E;[[:digit:]]&#x7B49;&#x6548;&#x3002;
[a-z]&#x4E0E;[[:lower:]]&#x7B49;&#x6548;&#x3002;
[A-Z]&#x4E0E;[[:upper:]]&#x7B49;&#x6548;&#x3002;
[a-zA-Z]&#x4E0E;[[:alpha:]]&#x7B49;&#x6548;&#x3002;
[a-zA-Z0-9]&#x4E0E;[[:alnum:]]&#x7B49;&#x6548;&#x3002;
[^0-9]&#x4E0E;[^[:digit:]]&#x7B49;&#x6548;&#x3002;
[^a-z]&#x4E0E;[^[:lower:]]&#x7B49;&#x6548;&#x3002;
[^A-Z]&#x4E0E;[^[:upper:]]&#x7B49;&#x6548;
[^a-zA-Z]&#x4E0E;[^[:alpha:]]&#x7B49;&#x6548;
[^a-zA-Z0-9]&#x4E0E;[^[:alnum:]]&#x7B49;&#x6548;

次数匹配

*       //&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x4EFB;&#x610F;&#x6B21;
?       //&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;1&#x6B21;&#x6216;0&#x6B21;
+       //&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x81F3;&#x5C11;1&#x6B21;
{m,n}   //&#x5339;&#x914D;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x81F3;&#x5C11;m&#x6B21;&#xFF0C;&#x81F3;&#x591A;n&#x6B21;

位置锚定

^       //&#x951A;&#x5B9A;&#x884C;&#x9996;&#xFF0C;&#x6B64;&#x5B57;&#x7B26;&#x540E;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x5FC5;&#x987B;&#x51FA;&#x73B0;&#x5728;&#x884C;&#x9996;
$       //&#x951A;&#x5B9A;&#x884C;&#x5C3E;&#xFF0C;&#x6B64;&#x5B57;&#x7B26;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x5FC5;&#x987B;&#x51FA;&#x73B0;&#x5728;&#x884C;&#x5C3E;
^$      //&#x7A7A;&#x767D;&#x884C;
\<或\b 锚定词首,其后面的任意单个字符必须作为单词首部出现 \>&#x6216;\b       //&#x951A;&#x5B9A;&#x8BCD;&#x5C3E;&#xFF0C;&#x5176;&#x524D;&#x9762;&#x7684;&#x4EFB;&#x610F;&#x5355;&#x4E2A;&#x5B57;&#x7B26;&#x5FC5;&#x987B;&#x4F5C;&#x4E3A;&#x5355;&#x8BCD;&#x5C3E;&#x90E8;&#x51FA;&#x73B0;
</或\b>
()      //&#x5206;&#x7EC4;
\1&#xFF0C;\2&#xFF0C;\3&#xFF0C;....

&#x4F8B;&#xFF1A;(ab)*
//&#x540E;&#x5411;&#x5F15;&#x7528;
    \1      //&#x5F15;&#x7528;&#x7B2C;&#x4E00;&#x4E2A;&#x5DE6;&#x62EC;&#x53F7;&#x4EE5;&#x53CA;&#x4E0E;&#x4E4B;&#x5BF9;&#x5E94;&#x7684;&#x53F3;&#x62EC;&#x53F7;&#x6240;&#x5305;&#x62EC;&#x7684;&#x6240;&#x6709;&#x5185;&#x5BB9;
    \2      //&#x5F15;&#x7528;&#x7B2C;&#x4E8C;&#x4E2A;&#x5DE6;&#x62EC;&#x53F7;&#x4EE5;&#x53CA;&#x4E0E;&#x4E4B;&#x5BF9;&#x5E94;&#x7684;&#x53F3;&#x62EC;&#x53F7;&#x6240;&#x5305;&#x62EC;&#x7684;&#x6240;&#x6709;&#x5185;&#x5BB9;
//&#x6216;&#x8005;
    |      //or &#x9ED8;&#x8BA4;&#x5339;&#x914D;&#xFF5C;&#x7684;&#x6574;&#x4E2A;&#x5DE6;&#x4FA7;&#x6216;&#x8005;&#x6574;&#x4E2A;&#x53F3;&#x4FA7;&#x7684;&#x5185;&#x5BB9;
           //&#x4F8B;&#xFF1A;C|cat&#x8868;&#x793A;C&#x6216;&#x8005;cat&#xFF0C;&#x8981;&#x60F3;&#x8868;&#x793A;Cat&#x6216;&#x8005;cat&#x5219;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5206;&#x7EC4;&#xFF0C;&#x5982;(C|c)at

Original: https://www.cnblogs.com/Their-own/p/16694730.html
Author: 事愿人为
Title: 正则表达式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573892/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球