首页
学习
活动
专区
圈层
工具
发布

Gsub替换
EN

Stack Overflow用户
提问于 2013-11-25 10:22:19
回答 1查看 2.8K关注 0票数 3

我试图在R中做一个gsub替换,我想从由单个空格分隔的两个列表中识别两个术语,并将其替换为下划线。我已经成功地识别了匹配,但我在regex方面还不够经验,无法理解gsub文档。有人能帮我写gsub吗?

现在我有:

代码语言:javascript
复制
gsub("(a|b|c)\\s+(x|y|z)","(a|b|c)_(x|y|z)",a x)

(注:字符串中有几个地方与此匹配,如果这很重要的话)

我想说的是:

X -> a_x

b_z -> b_z

你好,世界b,x,z是怎样的,->,你好,b_x,a_z,你怎么样.诸若此类。

相反,它做到了:

A_x -> (a_x_b_(C))(x_y_(_(x_

B,z,-> (a,b,c)(x,y,y,z).诸若此类。

如果有人想放弃一点理论的话,我们会很感激的,但我正在制定最后期限,所以同时给出一个答案将是非常理想的。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-11-25 10:26:43

您必须使用\\1\\2将第一个和第二个()中的术语替换为它自己。

代码语言:javascript
复制
vec <- "hello world b x how are a z you"

gsub("(a|b|c)\\s+(x|y|z)","\\1_\\2", vec)
# [1] "hello world b_x how are a_z you"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20189644

复制
相关文章

相似问题

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