Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vim搜索并替换为正则表达式_Regex_Vim - Fatal编程技术网

Regex vim搜索并替换为正则表达式

Regex 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}

对于我正在编辑的一些非常大的文档,我很难找到一些S&R

  • 我想用
    变量KOxxx
    替换
    [#dname=KOxxx]
    的所有实例,其中xxx是任意三位数字
  • 我想出了
    [##dname=KO\(\d\+\)]
    ,它正确地找到了我想要替换的文本,但我一辈子都不知道如何在替换中保留“xxx”。有什么想法吗

  • 我想删除字符串周围的字符>和<。示例:>xxx<其中xxx长度在2-5个字符之间
  • 几个月前,我成功地使用了下面的正则表达式,但现在它似乎不起作用了

    %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