Vim执行:%s/or/and/g时误改单词内字符,如何仅替换独立的or?
问题原因
你之前使用的:%s/or/and/g命令没有限定匹配边界,会匹配文本中所有连续出现的or字符,所以会命中color这类单词内部的or片段。
正确替换命令
:%s/\<or\>/and/g
命令规则说明
\<是Vim正则的单词起始锚点,仅匹配单词的开头位置,锚点前不能是字母、数字、下划线这类默认单词组成字符\>是Vim正则的单词结束锚点,仅匹配单词的结尾位置,锚点后不能是字母、数字、下划线这类默认单词组成字符- 给目标字符串
or前后加上这两个锚点后,只会匹配完全独立的or单词,不会改动color这类包含or片段的普通单词 - 末尾的
g标记保留,用于匹配单行内多个符合要求的独立or并全部替换
拓展用法
如果需要同时匹配大小写的Or、OR等写法,可以在命令末尾追加i标记,修改后命令为:
:%s/\<or\>/and/gi
内容的提问来源于stack exchange,提问作者Display_name
相关产品推荐
相关产品推荐

