【发布时间】:2022-01-09 19:42:43
【问题描述】:
我想在linux中使用vi编辑器去除文件中的一些特殊字符,比如
{
}
:
[
]
我尝试了以下模式,但不适用于上述所有可能的符号。
:%s/\{//g
出现错误: E866:(NFA 正则表达式)错位 { E64: { 不跟随 E476: 无效命令
【问题讨论】:
-
可以看到它正在使用以下方法:``` :%s#{##g ``` 所以我只是用空格替换'{'。
我想在linux中使用vi编辑器去除文件中的一些特殊字符,比如
{
}
:
[
]
我尝试了以下模式,但不适用于上述所有可能的符号。
:%s/\{//g
出现错误: E866:(NFA 正则表达式)错位 { E64: { 不跟随 E476: 无效命令
【问题讨论】:
总体而言,请参阅 :h :s 和 :h pattern。见man 7 regex。
\{ 在基本正则表达式中开始一个绑定。 vi 并没有真正使用基本的正则表达式,但无论如何,它就像接近它一样。你想匹配字符{,而不是重复之前的模式,所以只匹配{。
:%s/{//g
以上所有可能的符号。
如果您想将[ ] 放在括号表达式 [...] 中,您必须将它们放在最后/第一个。所以像[]] 匹配单个],像[][] 匹配[ 或]。
:%s/[]{}:[]//g
【讨论】: