前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于正则表达式第四篇(r3笔记第53天)

关于正则表达式第四篇(r3笔记第53天)

作者头像
jeanron100
发布2018-03-15 10:22:42
4810
发布2018-03-15 10:22:42
举报

正则表达式,林林总总说了几篇,还是有不少的内容需要补充。 -->星号 字符出现0次或者多次

代码语言:javascript
复制
$ echo "ik"|sed -n  '/e*/p'
ik
$ echo "ieek"|sed -n '/e*/p'
ieek
$ echo "This is a color  TV"|sed -n '/colou*r/p'  --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件
This is a color TV
$ echo  "This is a colour TV"|sed -n '/colou*r/p'    --colour中的u可以出现0次或者多次。出现1次的时候colour就符合条件
This  is a colour  TV

-->星号+点字符 星号和点字符的结合

代码语言:javascript
复制
$ echo  "This is a nice hat"|sed -n '/a.*hat/p'  
This is a nice  hat

-->星号+字符组

代码语言:javascript
复制
$ cat  c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ sed -n  '/b[ae]*t/p'  c.txt
bt
bat
bet
btt
batt
baaeeat

扩展表达式有以下几种,在linux中对于grep,awk都是支持的。 问号 花括号 管道符号 聚合表达式 -->问号 字符出现0次或者1次

代码语言:javascript
复制
$  cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat

$ sed -n '/b[ae]*t/p'  c.txt
bt
bat
bet
btt
batt
Baaeeat
$ awk '/b[ae]?t/{print  $0}' c.txt  --匹配0次或者1次的时候,Baaeeat  怎么也匹配不到[ae]相关的组合。
bt
bat
bet
btt
batt

-->加号 字符出现1次或者多次,这个和问号有些类似。但是对于出现的频率会有不同。问号是0次或者一次,星号是0次或者多次。

代码语言:javascript
复制
$  awk '/b[ae]+t/{print $0}' c.txt
bat
bet
batt
baaeeat

-->花括号 m 正则表达式准确出现m次 m,n 正则表达式至少出现m次,至多n次 默认awk不会识别正则表达式区间,需要指定--re-interval 选项

代码语言:javascript
复制
$ echo "bat"|awk '/b[ae]{1}t/{print $0}'
echo "bat"|awk --re-interval  '/b[ae]{1}t/{print $0}'
 bat

$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ awk  --re-interval '/b[ae]{1,2}t/{print $0}' c.txt
bat
bet
batt

$ cat d.txt
the cat is asleep
the dog is asleep
the sheep is  asleep
$ awk '/cat|dog/{print $0}' d.txt
the cat is asleep
the dog is  asleep

-->聚合表达式

代码语言:javascript
复制
$ echo "Sat"|awk  '/Sat(urday)?$/{print $0}'
Sat
$ echo "Satx"|awk '/Sat(urday)?$/{print  $0}'
$ echo "Saturday"|awk '/Sat(urday)?$/{print $0}'
Saturday
$ echo  "Saturdayurday"|awk '/Sat(urday)?$/{print $0}'
 $ echo "cat"|awk  '/(c|b)a(b|t)/{print $0}'
cat
 $ echo "tab"|awk '/(c|b)a(b|t)/{print  $0}‘
 $ echo "tac"|awk '/(c|b)a(b|t)/{print $0}' 
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档