gpt4 book ai didi

vim - 如何选择文本直到第一个字符?

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

我想替换以下文本中第一个“:”之前的文本:

S No. 1: This is main text having a colon (:) in it.

我想将上面的内容转换为:

This is main text having a colon (:) in it.

我在 vim 中使用了以下代码:

s/\v.+://

但是,它将上面的文本转换为:

) in it.

如何删除第一个冒号 (:) 之前的部分?

最佳答案

使用 Any Character 字符 . 和贪婪量词对您没有帮助

我刚刚将贪婪量词 \+ 更改为非贪婪量词 \{-1,},它看起来至少匹配一次非贪婪方式。

我刚刚使用了这个 ex 命令:

:s/^.\{-1,}:/

解释:

^ 行 anchor 开始

. 任何非行尾字符

\{-1,} 非贪婪量词(至少 1 个模式实例)。如果您预计可能不会发生任何情况,则量词 \{-} 会更准确(并且更短……归功于 Peter Rinkler)。

enter image description here

如果您查看帮助,:help greedy,您会找到关于如何执行非贪婪搜索的很好的解释。


Peter Rinckler 还建议您可以只创建一个非冒号字符类,例如 [^:] 来代替 (除行尾之外的任何字符字符)并使用 * 量词(字符类的 0 个或多个实例)。

这是这个替代 ex 命令的样子:

:%s/^[^:]*://

关于vim - 如何选择文本直到第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180024/

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