微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl regular expresstion

sed -n -r ; -n表示quiet, 只输出匹配结果; -r表示使用正则表达式

 

re:

* 匹配任意

? 匹配0,1

+ 匹配>=1

 

 

[]: 匹配其中任意字符;中括号内的连续字符可以使用-, 0-9表示0,1,2,3,4,5,6,7,8,9

[^]: 匹配非中括号中的任意字符

echo "def" | sed -n -r "/d[eE]f/p"         输出:def

echo "def" | sed -n -r "/d[a]f/p"           输出:无

 

/b:  匹配单词边界

echo "defgh" | sed -n -r "//bdef/p"      输出:defgh

echo "defgh" | sed -n -r "/def/b/p"      输出:无

 

/B: 匹配单词内部, 用法基本同上

 

^,$分别匹配行首与行尾

 

字符转义:

/d  数字         /D  数字外的字符

/w 单词字符   /W 非单词字符.(包括数字。。sed试过)

/s  空白          /S 非空白

 

.  匹配出/n之外的任意字符

 

{n,[m]} 匹配n次到m次;

/de{1,3}f/ 将会匹配def,deef,deeef

 

| 或, /def|ghi/ 将匹配def 或者 ghi

 

 

() 分组。 通过/n引用第n组

echo "abc.com" | sed -n -r "/(/w+).(/w+)/p"  其中有两个组, 第一个组匹配abc,第2个组匹配com

模式匹配选项

g: 匹配所有可能模式

i:    忽略大小写

m:  将串视为多行

s:   将串视为单行

x:   忽略所有空白

 

肯定否定匹配

/abc(?=string)/匹配abc后为string的模式, 返回的是abc

/abc(?!string)/ 匹配abc后不是string的模式, 返回的是abc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐