Regex vim搜索并替换为正则表达式
对于我正在编辑的一些非常大的文档,我很难找到一些S&RRegex vim搜索并替换为正则表达式,regex,vim,Regex,Vim,对于我正在编辑的一些非常大的文档,我很难找到一些S&R 我想用变量KOxxx替换[#dname=KOxxx]的所有实例,其中xxx是任意三位数字 我想出了[##dname=KO\(\d\+\)],它正确地找到了我想要替换的文本,但我一辈子都不知道如何在替换中保留“xxx”。有什么想法吗 我想删除字符串周围的字符>和xxx\(\w\{2,5}\)这就是你想要的:) \d\+是一个或多个数字,而不是三个数字\d{3}将是三个数字。这里\w\{2,5}你说第一个大括号是文字,去掉反斜杠,\w{2,5}
变量KOxxx
替换[#dname=KOxxx]
的所有实例,其中xxx是任意三位数字[##dname=KO\(\d\+\)]
,它正确地找到了我想要替换的文本,但我一辈子都不知道如何在替换中保留“xxx”。有什么想法吗
%s#>\(\w\{2,5}\)<#\1#g
%s#>\(\w\{2,5}\)这就是你想要的:)
\d\+
是一个或多个数字,而不是三个数字<代码>\d{3}
将是三个数字。这里\w\{2,5}
你说第一个大括号是文字,去掉反斜杠,\w{2,5}
说2到5个单词字符(如果你想要任何字符,就把它变成
)。我不确定vim的find and replace是如何工作的,我假设您的xxx
分组值将在$1
或\1
中。为了将来的参考,最好单独提出多个问题。谢谢Edward,我会的\d*
不是任何三位数字
是的,他/她可以使用\d\(3}
,而不是更健壮
:%s/\[##dname = KO\(\d*\)\]/Variable KO\1/g