查找模式并在括号之间换行下一个字母

Find pattern and wrap between parenthesis the next letter

我必须在数据框列中找到不同的模式,一旦找到,下一个字母应该用括号括起来:

数据:

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 demo and the online R demo

详情:

  • \(acetyl\) - 匹配文字字符串 (acetyl)
  • (.) - 将任何单个字符捕获到第 1 组中

() 替换模式用 ( + 第 1 组值 + ).

替换匹配项