我试图在R中做一个gsub替换,我想从由单个空格分隔的两个列表中识别两个术语,并将其替换为下划线。我已经成功地识别了匹配,但我在regex方面还不够经验,无法理解gsub文档。有人能帮我写gsub吗?
现在我有:
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).诸若此类。
如果有人想放弃一点理论的话,我们会很感激的,但我正在制定最后期限,所以同时给出一个答案将是非常理想的。
谢谢。
发布于 2013-11-25 10:26:43
您必须使用\\1和\\2将第一个和第二个()中的术语替换为它自己。
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"https://stackoverflow.com/questions/20189644
复制相似问题