文章目录
什么是正则表达式
正则表达式是使用某种模式去匹配字符串的一种公式,是由一串字符和元字符构成的字符串
1.基础的正则表达式
表达式 | 作用 |
---|---|
.(句点) | 匹配换行符(\n\r)意外任意的字符 |
* | 后面有0个或多个,重复匹配*号前面的字符 |
{m,n} | mn均为非负整数,其中m<=n。大小匹配1此,最大匹配n次 |
^ | 以…开头,标识从字符串首位匹配,书写时必须写在首位,否则匹配为空 |
$ | 以…结尾, 标识从字符串末尾匹配,书写时必须写在末尾,否则匹配为空 |
[] | 字符集范围,[0-9]数字 [a-z]字母 [A-Z]大写字母 |
\b | 边界匹配 |
\B | 非单词边界匹配 与\b相反 |
\w | 字母数字下滑线 |
\W | 非字符 非数字 非下滑线 |
\s | 匹配任何空白字符 |
\S | 匹配任何非空白字符 |
.(句点 | 匹配换行符(\n\r)意外任意的字符 |
? | 匹配前一个字符0次或者1次 |
+ | 匹配前一个字符1次或者多次 |
() | 分组 |
| | 或(相当于or)可以与()连用,(ab|cd)指匹配 ab 或者cd 两个字段 |
2.实列
关于转义符 \
转义符如果后面跟元字符,那么元字符就会失去它代表的特殊含有,变为普通字符,
后面跟普通字符,会实现特殊含含义
#如这里不加/,n只是一个普通字符
[root@VM-20-14-centos ~]# echo -e "anb"
anb
#加了反斜杠以后,\n就成了换行符
[root@VM-20-14-centos ~]# echo -e "a\nb"
a
b
这一点在正则里面也是适用的, 当我们在" " 里面实现正则时,有时也要使用反斜杠来使他们生效,下面的实例就有用到这种情况
如"{m,n}" 在引号里面实现功能还要加上\ “{m,n}”
1. 英文句点(.)
- .(句点) 匹配换行符意外所有的字符,单独使用表示可以匹配所有
- 与其他字符联合时,则会关联其他字符一起匹配
- 单纯的匹配点,要加中括号 [.]
[root@VM-20-14-centos ~]# cat > test
[root@VM-20-14-centos ~]# cat > test
oh
oooh
oooooh
hh
...
hhhhhh
123456
abc:/c/d
banana
apple
PYTHON
yilushen
(1)匹配换行符意外所有的字符
[root@VM-20-14-centos ~]# grep . test
oh
oooh
oooooh
hh
...
hhhhhh
123456
abc:/c/d
banana
apple
PYTHON
(2)与其他字符联合时,则会关联其他字符一起匹配