首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex删除除字符串以外的所有文本。

regex删除除字符串以外的所有文本。
EN

Stack Overflow用户
提问于 2018-07-15 03:11:33
回答 1查看 110关注 0票数 1

因此,我有一个匹配的正则表达式来提取我在文本中寻找的数据:

代码语言:javascript
复制
([A-Z]+A{5,})

这将在下面的示例文本中选择我要查找的代码:

代码语言:javascript
复制
Use these licenses with the VMware ESX build.

Feature               License Code                   Description
-------------------   ----------------------------   --------------------------------------------

CIFS                  CAYHXPKBFDUFZGABGAAAAAAAAAAA   CIFS protocol
FCP                   APTLYPKBFDUFZGABGAAAAAAAAAAA   Fibre Channel Protocol 

我想要的最终结果是对文档进行替换,从而生成包含文本的文本文档。

代码语言:javascript
复制
CAYHXPKBFDUFZGABGAAAAAAAAAAA,APTLYPKBFDUFZGABGAAAAAAAAAAA
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 05:05:37

您可以向正则表达式添加如下所示的替换:

代码语言:javascript
复制
([A-Z]+A{5,})|\X

然后将其替换为:

代码语言:javascript
复制
(?1$1,)

替换字符串意味着,如果第一个捕获组匹配,则用$1,替换它,否则将其替换为空。

在注释中,为了避免在匹配的子字符串后面添加逗号(如果在末尾找到),我添加了一个负的向前看。但是在这个正则表达式中,一个额外的后缀逗号是不可避免的。

一种更好的办法:

代码语言:javascript
复制
(\b[A-Z]++\b(?<=A{5}))|\X

这使用了拥有式量词和查找结束A的方法。您不需要查找A{5,},而只需要查找A{5}。如果您想要匹配这样的字符串,即使在较长的单词的中间找到,也可以删除单词边界。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51344925

复制
相关文章

相似问题

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