ast*_*eri 5 regex linux vim end-of-line
我一直在学习如何在VIM中进行更复杂的搜索和替换功能,我遇到了这样一个用例:
:%s/$/|/g
Run Code Online (Sandbox Code Playgroud)
这应该找到每一行的结尾,并用垂直管道替换它.但是,当我第一次学习这个时,我假设您必须在替换字符串中添加行尾字符以获得预期结果.即
:%s/$/|$/g
Run Code Online (Sandbox Code Playgroud)
为什么没有它仍然可以保持换行?它不应该用你的字符串替换行的终止字符并在过程中删除它吗?
可以用行尾字符来询问同样的事情^.
Roh*_*ain 17
Anchor $不包含换行符.实际上它是一个零宽度令牌.它匹配字符串中第一个换行符之前的空字符.结果就是如此.
同样,^匹配字符串中第一个字符前的空字符.
有关详细信息,请参见http://www.regular-expressions.info/anchors.html.