gpt4 book ai didi

regex - 用于匹配字符串的 Vim 正则表达式

转载 作者:行者123 更新时间:2023-12-04 20:42:31 29 4
gpt4 key购买 nike

如何为 Vim 创建一个正则表达式,以便在一行上匹配多个双引号字符串,而不匹配两个双引号字符串之间的文本?该模式的一个限制是双引号字符串不能包含单引号。到目前为止,我想出了 /"\([^']\{-}\)"/匹配下面的字符串。但正如您所见,它将匹配第二行字符串之间的文本。正如您在第三行中看到的那样,我不能依赖字符串周围的空白区域。当然,它也需要与第四行一起使用。

  • “猫”被称为“富”
  • “猫”的名字是“foo”
  • x="猫粮"
  • x = "猫"
  • 最佳答案

    basically I want to retrieve the contents from within the double quotes. This way I can replace them with single quotes. It goes without saying that I do not want to replace double quotes for single quotes when there is a single quote inside



    我没有找到一种方法来编写一个简单的正则表达式来满足您的需要,但是使用 vim 的 :s有一种方法:
    %s/\v"([^"]*)"/\=stridx(submatch(1),"'")>=0?submatch(0):"'".submatch(1)."'"/g

    执行上述行后,您的示例文本将更改为:
    'cat' is called 'foo'
    "cat's" name is 'foo'
    x="cat's food"
    x = 'cat'

    关于regex - 用于匹配字符串的 Vim 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23560822/

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