linux 中正则表达式?、+、*、及.*的区别

 

001、?表示匹配0次或者1次

atcg?t 能够匹配 atct 或 atcgt,但是不能匹配 atcggt。

 

测试:

复制代码
[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt
atct    888
atcggk  333
atcgt   444
atcgggkx        3333
[root@pc1 test]# awk '$1 ~ /atcg?t/' a.txt   ## g?表示匹配g0次或者匹配g1次
atct    888
atcgt   444
复制代码

 

 

 

002、+ 表示匹配之前的项 1 次或多次

exon-9+能够匹配 exon-99 和 exon-9,但是不能匹配 exon-。

 

测试:

复制代码
[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt
exon-99 888
exon-9  666
exon-   333
exon-88 777
[root@pc1 test]# awk '$1 ~ /exon-9+/' a.txt
exon-99 888
exon-9  666
复制代码

 

 

003、*表示匹配之前的项 0 次或多次

exon-9*能够匹配 exon-*,但是不能匹配 exon。

复制代码
[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt
exon-99 888
exon-9  666
exon-   333
exon-88 777
exon88  777
[root@pc1 test]# awk '$1 ~ /exon-9*/' a.txt   ## 9*表示匹配90次或者多次
exon-99 888
exon-9  666
exon-   333
exon-88 777
复制代码

 

 

004、.* 表示匹配任意字符0次或者多次, 一般指匹配所有。

 

小结:

复制代码
[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt
cl jjj
col kkk
coool mmm
cooool nnn
xxxx yyyy
[root@pc1 test]# awk '$1 ~ /co?l/' a.txt    ## ?表示匹配前一个字符0次或者多次
cl jjj
col kkk
[root@pc1 test]# cat a.txt
cl jjj
col kkk
coool mmm
cooool nnn
xxxx yyyy
[root@pc1 test]# awk '$1 ~ /co+l/' a.txt       ## +表示匹配前一个字符1次或者多次
col kkk
coool mmm
cooool nnn
复制代码

 

 

复制代码
[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt
cl jjj
col kkk
coool mmm
cooool nnn
xxxx yyyy
[root@pc1 test]# awk '$1 ~ /co*l/' a.txt    ## *号表示匹配0次或者多次
cl jjj
col kkk
coool mmm
cooool nnn
[root@pc1 test]# cat a.txt
cl jjj
col kkk
coool mmm
cooool nnn
xxxx yyyy
[root@pc1 test]# awk '$1 ~ /co.*l/' a.txt    ## .*表示匹配任意字符0次或者多次
col kkk
coool mmm
cooool nnn
复制代码

 

参考:https://mp.weixin.qq.com/s?__biz=MzU1NTk0MTUxMg==&mid=2247490679&idx=2&sn=9c2c050c02bb106839fab7ec72a2a0ae&chksm=fbcdf790ccba7e8659943e72198aa5a86ecac362841e19de519fe0bdefdf83708bb743203d46&mpshare=1&scene=23&srcid=01050wuMhaTBRKnW8dsga2B8&sharer_sharetime=1672894580394&sharer_shareid=50b75c6a886e09824b582fb782a7678b#rd

 

posted @   小鲨鱼2018  阅读(2148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-01-05 linux中grep命令匹配制表符
2022-01-05 linux中如何删除空行
2022-01-05 linux中如何删除行首和行尾的空格或者制表符
2022-01-05 linux中如何删除^M符号
2022-01-05 linux中tr命令
2021-01-05 c语言中逆向显示数值
2021-01-05 c语言中后置递增运算和前置递增运算的差异
点击右上角即可分享
微信分享提示