1.正则表达式分类
正则表达式:REGEXP,REGular EXPression。
正则表达式分为两类:
- Basic REGEXP(基本正则表达式)
- Extended REGEXP(扩展正则表达式)
2.基本正则表达式
元字符
. //任意单个字符
[] //匹配指定单位外的任意单个字符
[^] //匹配指定范围外的任意单个字符
匹配次数
* //匹配其前面的任意单个字符任意次
.* //任意长度的任意字符
\? //匹配其前面的任意单个字符1次或0次
\+ //匹配其前面的任意单个字符至少一次
\{m,n\} //匹配其前面的任意单个字符至少m次,至多n次
位置锚定
^ //锚定行首,此字符后面的任意单个字符必须出现在行首
$ //锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$ //空白行
\<或\b 锚定词首,其后面的任意单个字符必须作为单词首部出现 \>或\b //锁定词尾,其前面的任意单个字符必须作为单词尾部出现
</或\b>
\(\)
例:\(ab\)*
//后向引用
\1 //引用第一个左括号以及与之相应的右括号所包括的所有内容
\2 //引用第二个左括号以及与之对应的右括号所包括的所有内容
示例:
//过滤任意单个字符
[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
//匹配指定范围内的任意单个字符
[root@localhost zxr]# ls |grep '^[15]$'
1
5
[root@localhost zxr]# ls |grep '^[1-3]$'
1
2
3
//匹配指定范围外的任意单个字符
[root@localhost zxr]# ls |grep '^[^123]$'
4
5
6
7
8
9
//匹配其前面的任意单个字符任意次
[root@localhost zxr]# ls |grep '^abc*$'
abc
abccc
abccccccc
//匹配任意长度的任意字符
[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
//匹配其前面的任意单个字符1次或者0次
[root@localhost zxr]# ls | grep '^a\?b$'
ab
b
//匹配其前面的任意单个字符至少m次,至多n次
[root@localhost zxr]# ls |grep '^a\+bc$'
aaaabc
abc
//匹配其前面的任意单个字符至少m次,至多n次
[root@localhost zxr]# ls |grep '^a\{1,6\}bc$'
aaaabc
abc
//以a开头
[root@localhost zxr]# ls |grep '^a'
aaaabc
aabbbbbccccc
aabbcc
abbc
abbcc
abc
abccc
//以c结尾
[root@localhost zxr]# ls |grep 'c$'
aaaabbbccc
aaaabc
abc
abccc
abccccccc
//锚定词首
[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
//锚定词首,和词尾
[root@localhost zxr]# grep '\<admin\>' a
admin
</admin\></a'>
3.扩展正则表达式
字符匹配
. //匹配任意单个字符
[] //匹配指定范围内的任意单个字符
[^] //匹配指定范围外的任意单个字符
单个字符匹配相关
[[:alpha:]] 表示任意大小写字母。
[[:lower:]] 表示任意小写字母。
[[:upper:]] 表示任意大写字母。
[[:digit:]] 表示0到9之间的任意单个数字(包括0和9)。
[[:alnum:]] 表示任意数字或字母。
[[:space:]] 表示任意空白字符,包括"空格"、"tab键"等。
[[:punct:]] 表示任意标点符号。
[^[:alpha:]] 表示单个非字母字符。
[^[:lower:]] 表示单个非小写字母字符。
[^[:upper:]] 表示单个非大写字母字符。
[^[:digit:]] 表示单个非数字字符。
[^[:alnum:]] 表示单个非数字非字母字符。
[^[:space:]] 表示单个非空白字符。
[^[:punct:]] 表示单个非标点符号字符。
[0-9]与[[:digit:]]等效。
[a-z]与[[:lower:]]等效。
[A-Z]与[[:upper:]]等效。
[a-zA-Z]与[[:alpha:]]等效。
[a-zA-Z0-9]与[[:alnum:]]等效。
[^0-9]与[^[:digit:]]等效。
[^a-z]与[^[:lower:]]等效。
[^A-Z]与[^[:upper:]]等效
[^a-zA-Z]与[^[:alpha:]]等效
[^a-zA-Z0-9]与[^[:alnum:]]等效
次数匹配
* //匹配其前面的任意单个字符任意次
? //匹配其前面的任意单个字符1次或0次
+ //匹配其前面的任意单个字符至少1次
{m,n} //匹配其前面的任意单个字符至少m次,至多n次
位置锚定
^ //锚定行首,此字符后面的任意单个字符必须出现在行首
$ //锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$ //空白行
\<或\b 锚定词首,其后面的任意单个字符必须作为单词首部出现 \>或\b //锚定词尾,其前面的任意单个字符必须作为单词尾部出现
</或\b>
() //分组
\1,\2,\3,....
例:(ab)*
//后向引用
\1 //引用第一个左括号以及与之对应的右括号所包括的所有内容
\2 //引用第二个左括号以及与之对应的右括号所包括的所有内容
//或者
| //or 默认匹配|的整个左侧或者整个右侧的内容
//例:C|cat表示C或者cat,要想表示Cat或者cat则需要使用分组,如(C|c)at
Original: https://www.cnblogs.com/Their-own/p/16694730.html
Author: 事愿人为
Title: 正则表达式
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613149/
转载文章受原作者版权保护。转载请注明原作者出处!