我想使用 stri_replace_all_regex 替换字符串但失败。我想知道是否还有其他方法可以克服它。
感谢任何给我帮助的人!
尝试:
首先:
> library(string)
> a <- c('abc2','xycd2','mnb345','tumb b~','lymavc')
> b <- c('ab','abc','xyc','mnb','tum','mn','tumb','lym','lymav')
> stri_replace_all_regex(a, "\\b" %s+% b %s+% "\\S+", b, vectorize_all=FALSE)
然而,结果是:
> c("ab","xyc","mn" ,"tum b~","lym")
这不是我想要的。
我想要的结果应该是:
> c('abc','xyc','mnb','tumb','lymac')
第二:
> pattern <- paste0("\\b(", b, ")\\S+", collapse = "|")
> gsub(pattern, "\\w", a)
然而它失败了。
我感到抱歉,是我的错误,我没有表达清楚。
其实我想更换b
with a
。
如你所见,a
and b
左边有一些相似的部分,我想删除其中的差异a
。但应该是贪心匹配。
例如:
的结果'tumb b~‘
应该'thumb'
not 'tum'
和结果'mnb345‘
应该'mnb'
not 'mn'
。
我只是学习正则表达式,所以我的尝试可能会很复杂和麻烦。期待您的回复!
新的问题出现了。
a <- c('tums310','tums310~20','tums320')
b<-c('tums1','tums2','tums3')
我想要的结果应该是
“tums3” “tums3” “tums3”