正则表达式,又被称为规则表达式,通俗的讲就是用一串字符来替换符合某种规则的文本的方式,如1a,规则为:数字+字母,然后把数字和字母用某种字符来代替,则可以找到所有包含这些规则的文本
正则表达式又分为基本正则和扩展正则,基本正则特点是写得比较复杂,兼容性较可以,而扩展正则特点为写得方式比较简单,但是兼容性不是很好
正则表达式的语言有两部分组成,文本字符和元字符,文本字符就是不变得文本,元字符就是一些字符代替需要可变的文本
这一篇文章先讲基本正则,下表为基本正则元字符释义
序号 |
元字符 |
释义 |
举例 |
1 |
^ |
匹配以什么开头(匹配行首) |
^abc //匹配以abc开头 |
2 |
$ |
匹配以什么结尾(匹配行尾) |
abc$ //匹配以abc结尾 |
3 |
[ ] |
匹配集合当中的任意单个字符 |
a[bc] //匹配a字符后面是b或者c,ab或ac |
4 |
[^ ] |
对集合取反 |
a[^bc] //匹配a后面不跟b或者c的,除ab或者ac之外的 |
5 |
[a-z] |
匹配a到z中的任意一个字符 |
[0-9] //匹配0-9中任意一个字符,匹配数字 |
6 |
. |
匹配任意单个字符 |
a.b //a和b之间任意单个字符都行 如acb a1b 等等 |
7 |
* |
匹配前一个字符出现任意次数(不单用) |
go*gle //匹配o任意次数,如google,goooooogle等
|
8 |
\{n,m\} |
匹配前一个字符n~m次 |
ro\{3,5\}t //匹配出现r和t中o出现3-5次,如rooot等 |
9 |
\{n\} |
匹配前一个字符n次 |
ro\{2}t //匹配r和t中o出现2次的文本,如root |
10 |
\{n,\} |
匹配前一个字符n次以上 |
ro\{2,\}t //匹配r和t之间o出现2次及以上,如root,rooot…
|
实战演练

根据上述文件a.txt进行正则表达式练习
1.过滤包含the的关键字
grep 'the' a.txt

2.过滤文件中不包含the的关键字
grep -v 'the' a.txt

3.过滤以小写字母开头
grep '^[a-z]' a.txt

3.过滤test或者taste这两个单词
grep 't[ae]ste\{0,1\}' a.txt

4.过滤不想要oo前面有g的
grep '[^g]oo' a.txt

注意了最后的红框部分匹配的是ooo和ooo,并不是goo !!!
5.过滤g开头后面至少跟一个o
grep '^go\{1,\}' a.txt

grep '^go*' a.txt

6.过滤任意两个字符之间有oo
grep '.oo.' a.txt

未经允许不得转载:天府数据港官方信息博客 » 正则表达式之基础篇——基本正则
客官点个赞呗! (0)