sed正则表达式

"|" "(" ")" 等属于正则表达式的POSIX扩展, 在sed里不直接支持 需要加转义字符"\" 。
也就是说得这样使用:  \|    \(    \)

------------------------------------------------------------------------
下面的资料摘自: http://www.debian.org/doc/manual ... tutorial.zh-cn.html
                      http://www.debian.org/doc/manual ... html#s-text-process

正则表达式用在很多文本处理工具里面。它们和shell的通配符比较相似,但是它们更复杂也更强大。

正则表达式是由文本字符和元字符组成的,用来描述匹配模式。元字符是有特殊意义的字符。它们有两种主要
的形式基本的正则表达式(BRE)扩展的正则表达式(ERE)


在扩展的正则表达式(EREs)里面元字符包括"\ . [ ] ^ $ * + ? ( ) { } |"。正则表达式表示:
c
这个用来匹配非元字符 "c".
\c
这个用来匹配原本的字符"c".
.
这个用来匹配任意字符包括换行符。
^
这个用来匹配字符串的开始。
$
这个用来匹配字符串的结尾。
\<
这个用来匹配一个单词的开始。
\>
这个用来匹配一个单词的结尾。
[abc...]
这个字符序列用来匹配 "abc..."中的任意字符。
[^abc...]
这个否定的字符序列匹配所有的字符除了 "abc...".
r*
这个匹配以"r" 开始的后面有0个或者多个字符的字符串。
r+
这个匹配以"r" 开始的后面有一个或者多个字符的表达式。
r?
以"r" 开始后面有0个或者1个其他的字符。
r1|r2
匹配"r1"或者"r2"。
(r1|r2)
匹配"r1"或者 "r2"并且把它当作一个分类 正则表达式。

在BREs里面元字符"+ ? ( ) { } |"不再具有它们特殊的含义,而是使用的有反斜杠的版本"\+ \? \( \) \{ \} \|"。
因此分组(r1|r2)需要被表示成\(r1|r2\)。因为emacs,虽然基本上是BRE,但是它把"+ ?"当作元字符。因此不
需要特别表示它们。查看替换表达式, 第 4.4.2 节来了解构造分组是如何使用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值