使用sed,为什么匹配:
sed 's/test$/pass/' <<< "test"
......什么时候没有?
sed 's/test[$]/pass/' <<< "test"
答案 0 :(得分:6)
由于[…]
表示正则表达式中的字符类,因此[$]
匹配单个文字$
字符。
换句话说,您无法匹配字符类中的锚点。因此,如果您想要匹配a
或b
字符或字符串末尾,请使用替换:
sed 's/test([ab]|$)/pass/' <<< "test"
答案 1 :(得分:1)
test[$]
表示与test$
字符串匹配。
正则表达式test$
表示匹配test
来自其末尾的字符串。例如:
test is a test
+--+ is matched for test$