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==(['']\\\]\\\\\\\\\\\\\\[']