regex - 我如何需要在 vim 中转义搜索字符串?

标签 regex vim

我需要搜索并替换这个:

ExecIf($["${debug}" = "1"]?NoOp

用这个:

GoSub(chanlog,s,1(1,[${CHANNEL}] 

我似乎无法在 vim 中执行此操作,而且我不确定需要转义什么,因为我尝试过的都不起作用。

最佳答案

如果你想改变一个有很多标点字符的长字符串,并且它是一个完全匹配(你不希望它们中的任何一个被视为正则表达式语法)你可以使用 nomagic选项,将搜索模式解释为文字字符串。

:set nomagic
:%s/ExecIf($["${debug}" = "1"]?NoOp/GoSub(chanlog,s,1(1,[${CHANNEL}]/
:set magic

您仍然需要注意分隔符(s/// 命令的斜线),但您可以为此使用任何字符,它不一定是斜线,所以当你有这样的东西并且在搜索或替换字符串中有斜杠时,只需选择其他东西,比如 s@foo@bar@s:bar:baz: .

关于regex - 我如何需要在 vim 中转义搜索字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286925/

相关文章:

javascript - 如何在 Jquery 中搜索数组,如 SQL LIKE value% 语句

c# - 禁止逗号的正则表达式

ruby - 删除 URL 中第一个斜杠之前的所有内容?

VIM 查找所有出现并替换为输入

vim - 无法切换 NERDTree

unix - gvim 到 .vimrc 中的自定义高亮组不起作用

java - 如何使用正则表达式删除仅包含单词的字符串?

带有单词边界的 Java RegEx 语法?

vim - 可以让 ctags 遵循 #include 指令吗?

vim - Linux命令用另一个字符串替换HUGE文件中的字符串