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 節來了解構造分組是如何使用的。
也就是說得這樣使用:??\|? ? \(? ? \)
------------------------------------------------------------------------
下面的資料摘自: 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 節來了解構造分組是如何使用的。
總結
- 上一篇: Meta 发布首个基于文本的 4D 视频
- 下一篇: 有些盲人,竟然不知道自己是盲人