gpt4 book ai didi

regex - vim:使用正则表达式在不同的行上搜索、捕获和替换

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:14 24 4
gpt4 key购买 nike

这里是相对较新的 linux/vim/regex 用户。我想使用正则表达式搜索数字模式,捕获它,然后使用捕获的值将字符串附加到上一行。换句话说......我有一个格式的文件:

title: description_id

text: {en: '2. text description'}

我想从文本字段中捕获值并将它们附加到标题字段的开头...产生如下内容:

title: q2_description_id

text: {en: '2. text description'}

我觉得我遇到了一种在搜索和替换中引用其他行的方法,但现在找不到它。或者宏可能是合适的。任何帮助将不胜感激...谢谢!

最佳答案

也许是这样的:

:%s/\(title: \)\(.*\n\)\(text: \D*\)\(\d*\)/\1q\4_\2\3\4/

我们在哪里搜索 4 个部分:

  1. “标题:”
  2. 行的其余部分和\n
  3. "text: " 以及行中直到下一个数字的所有内容
  4. 行中第一串连续数字

然后把它们吐出来,在 1) 和 2) 之间插入 4)。

编辑:Peter 在评论中提供的更短的解决方案:

:%s/title: \zs\ze\_.\{-}text: \D*\(\d*\)/q\1_/

关于regex - vim:使用正则表达式在不同的行上搜索、捕获和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465394/

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