我必须在数据框架列中找到不同的模式,一旦找到,下一个字母应该用括号括起来:
数据:
a <- c('(acetyl)RKJOEQLKQ', 'LDFEION(acetyl)EFNEOW')
,如果模式为:'(acetyl)'
这是我想要实现的输出:
预期输出:
b <- c('(R)KJOEQLKQ', 'LDFEION(E)FNEOW')
我知道如何使用gsub:
找到模式b <- gsub('(acetyl)', replacement = '', a)
但是,我不确定如何在找到模式后的下一个字母的括号之间进行包装。
如有任何帮助,不胜感激。
可以使用
a <- c('(acetyl)RKJOEQLKQ', 'LDFEION(acetyl)EFNEOW')
gsub('\(acetyl\)(.)', '(\1)', a)
## => [1] "(R)KJOEQLKQ" "LDFEION(E)FNEOW"
参见regex演示和在线R演示。
细节:
(acetyl)
-匹配文字字符串(acetyl)
(.)
-捕获任何单个字符到组1
(1)
替换模式将匹配项替换为(
+第一组值+)
。