sed中[]内的锚点

时间:2014-04-04 21:57:47

标签: regex sed

使用sed,为什么匹配:

sed 's/test$/pass/' <<< "test"

......什么时候没有?

sed 's/test[$]/pass/' <<< "test"

2 个答案:

答案 0 :(得分:6)

由于[…]表示正则表达式中的字符类,因此[$]匹配单个文字$字符。

换句话说,您无法匹配字符类中的锚点。因此,如果您想要匹配ab字符或字符串末尾,请使用替换:

sed 's/test([ab]|$)/pass/' <<< "test"

答案 1 :(得分:1)

test[$]表示与test$字符串匹配。

正则表达式test$表示匹配test来自其末尾的字符串。例如:

test is a test
          +--+ is matched for test$