sed正則表達式匹配,各種括號的轉義和不轉義

[ ] 需要匹配的時候,需要轉義(這個是叛徒)

  echo "[ ]"|sed 's/\[.*\]/aaa/g'

( ) 需要匹配的時候,不要轉義

  $echo "( )"|sed 's/( )/c/g'

{ } 需要匹配的時候,不要轉義

  $echo "{ }"|sed 's/{ }/c/g'

當需要匹配數字,字母等使用中括號時候:
不要轉義
但使用大括號作爲特殊字符時候,需要轉義。

  $echo "333"|sed 's/[0-9]\{3\}/ccc/g'

當需要適配符,需要使用\1來替換正則表達式的對應參數時:

不能寫(regrexxxx)

要寫\(regrexxxx\)
  $echo "{1234567}"|sed 's/{\([0-9]*\)}/\1/g'

與此對應的還有
+和*

在做爲特別字符時候+必須轉義爲

\+

纔有效,
而*則不需要。

舉個例子:

echo "ccc"| sed 's/c*/aaa/g'#正確
echo "ccc"| sed 's/c\*/aaa/g'#錯誤
echo "ccc"| sed 's/c+/aaa/g'#錯誤
echo "ccc"| sed 's/c\+/aaa/g'#正確
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章