首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >vim regex删除所有包含某个字符的单词,这些字符将位于单词末尾。

vim regex删除所有包含某个字符的单词,这些字符将位于单词末尾。
EN

Stack Overflow用户
提问于 2018-07-31 04:25:14
回答 2查看 179关注 0票数 0

如果文档中包含一个标记(X),我将尝试清理文本文档,并从文档中的每一行删除特定的单词。因此,对于以下一行:

代码语言:javascript
复制
Adäë ee tee tdX hnX dedas ödaX.

就会变成:

代码语言:javascript
复制
Adäë ee tee dedas.

字母表的字符是a, e, i, o, u, ë, ä, ö, t, d, n,所以X不包括在内。此外,标记X将始终是要删除的单词中的最后一个字符。我曾试图修改here的声明,但我一直未能使它发挥作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-31 05:47:02

你可能想试试:

代码语言:javascript
复制
:%s/\s*\S*X\([aeiouëäötdn]\)\@!//g

它遍历所有行并删除以X结尾的以其前导空格结尾的单词。如果断言X后面的下一个字母不是来自字母表,则从负面展望中获益。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 05:45:58

VIM完全替换命令如下所示:

代码语言:javascript
复制
:%s/before/after/g

哪里

  • %s是替换
  • 之前是要匹配的字符串。
  • 之后是替换
  • G是全局标志(用于替换所有事件)。

对于你的问题,你可以用

代码语言:javascript
复制
:%s/\s*\<\S\+X\>//g

哪里

  • \s*将匹配所有空白(0或更多)
  • \<与单词边界匹配
  • \S+匹配所有非空白(1或更多)
  • X代表你的疑问词应该以X结尾
  • 匹配单词边界结束
  • //后字符串为空
  • G是全局替换。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51605438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档