Regex 如果出现以下情况,则更换vim正则表达式

Regex 如果出现以下情况,则更换vim正则表达式,regex,vim,Regex,Vim,我尝试替换如下内容: ch==“q”或ch==“q”与ch==ord('q') 我试过: :%s/ch == [\'\"](.*)[\'\"]:/ch == ord('\1'):/gc 但上面说找不到模式 我认为您需要在捕获组中转义(和),您可以避免转义“和”,并且应该使用非贪婪的\{-}(:帮助非贪婪的)来匹配引号内的字符。类似这样的情况: :%s/ch == ['"]\(.\{-}\)['"]/ch == ord('\1')/g 我认为您需要在捕获

我尝试替换如下内容:

ch==“q”
ch==“q”
ch==ord('q')

我试过:

:%s/ch == [\'\"](.*)[\'\"]:/ch == ord('\1'):/gc

但上面说找不到模式

我认为您需要在捕获组中转义
,您可以避免转义
,并且应该使用非贪婪的
\{-}
:帮助非贪婪的
)来匹配引号内的字符。类似这样的情况:

:%s/ch == ['"]\(.\{-}\)['"]/ch == ord('\1')/g

我认为您需要在捕获组中转义
,您可以避免转义
,并且应该使用非贪婪的
\{-}
:帮助非贪婪的
)来匹配引号内的字符。大概是这样的:

:%s/ch == ['"]\(.\{-}\)['"]/ch == ord('\1')/g

您还可以匹配单引号/双引号,然后再次匹配。此外,由于我们使用的是
ord
,因此最好只匹配一个字符。e、 g.
:%s/ch==\(['“]\)\(.\\)\1/ch==ord('\2')/g
@PeterRincker如果在引号内只匹配一个字符,那么您将无法匹配像
'\n'
'\t'
'\u2020'
等字符。非常好的一点。谢谢。
:%s/ch==(['']\)([']\\\\\\\\\\)(/g
您还可以匹配单引号/双引号,然后再次匹配。此外,由于我们使用的是
ord
,因此最好只匹配一个字符。e、 g.
:%s/ch=\([''']\)\(.\\)\1/ch==ord('\2')/g
@PeterRincker如果在引号内只匹配1个字符,那么您将无法匹配字符,如
'\n'
'\u2020'
等。非常好的一点。谢谢。
:%s/ch==(['']\\\]\\\\\\\\\\\\\\[']