首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用mawk替换两个字符串之间出现的字符

仅使用mawk替换两个字符串之间出现的字符
EN

Stack Overflow用户
提问于 2019-12-20 14:25:46
回答 1查看 35关注 0票数 0

使用mawk替换字符串中出现的字符

大家好,需要这个解决方案使用mawk,请帮助。

我有两个字符串STR_IN & STR_CMPR。想要在STR_IN中替换STR_CMPR的所有字符,主要的事情是,如果STR_IN有两个字符&在STR_CMPR中相同的字符只有一次,那么从STR_IN只有一个字符应该被替换。

有没有人可以帮助使用mawk,没有其他方法请。如果可以使用gsub & regex或match & regex来实现,那就最好了。我不想使用一些循环来遍历每个字符。

下面是3个具有预期输出的示例。

例1:

STR_IN="AABBCCDD"; STR_CMPR="DBAC";

如果使用gsub,则gsub(STR_CMPR, "", STR_IN);结果应为,STR_IN = ABCD;

如果使用匹配,结果: STR_IN_MATCH_CNT =4/ 8;

例2:

STR_IN="DBAC"; STR_CMPR="AABBCCDD";

如果使用gsub,则gsub(STR_CMPR, "", STR_IN);结果应为,STR_IN =空;

如果使用匹配,则结果: STR_IN_MATCH_CNT = 4;

例3:

STR_IN="DDBBAC"; STR_CMPR="AABCCD";

如果使用gsub,则gsub(STR_CMPR, "", STR_IN);结果应为,STR_IN = DB;

如果使用匹配,结果: STR_IN_MATCH_CNT =4/ 6;

EN

回答 1

Stack Overflow用户

发布于 2019-12-20 18:20:04

这是没有办法的,需要一个for循环,最快的是:

代码语言:javascript
复制
STR_IN_MATCH_CNT=length(STR_IN)
for(i=1;i<=length(STR_CMPR);++i) sub(substr(STR_CMPR,i,1),"",STR_IN)
STR_IN_MATCH_CNT-=length(STR_IN) 
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59420734

复制
相关文章

相似问题

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