gpt4 book ai didi

regex - 用 vim 替换标签之间的所有字符实例

转载 作者:行者123 更新时间:2023-12-02 04:24:50 24 4
gpt4 key购买 nike

我需要将 < filename >... 标记之间的/字符的所有实例替换为\。

该文件有大约 2.000 个这样的标签,我只需要替换这些标签内的/字符。

我该怎么办?

最佳答案

编辑:鉴于新信息,以下替换可能会起作用:

:%s/<filename>\zs.\{-}\ze<\/filename>/\=substitute(submatch(0), '\/', '\', 'g')/ 

说明:

  • %s :替换整个文件
  • /<filename> :要匹配的模式和静态文本的开头
  • \zs :匹配文本的开头
  • .\{-} :任意字符,非贪婪
  • \ze : 匹配文本结束
  • <\/filename>/ :目标标签和模式结束
  • \= :将替换计算为 vim 表达式
  • substitute(submatch(0), '\/', '\', 'g')/ :替换全部/\在匹配的文本中。
<小时/>

原答案:

我假设您指的是 XML 样式标签。我要做的就是直观地选择您想要操作的区域,然后使用 \%V正则表达式原子仅对该选择进行操作。

vit:s!\%V/!\\!g

应该可以解决问题。请注意,按 : 时,vim 会自动添加视觉选择的范围,实际的替换命令如下所示:

:'<,'>s!\%V/!\\!g

关于regex - 用 vim 替换标签之间的所有字符实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com