在R和句号之间插入字符串

问题描述 投票:0回答:1

我有一个像这样的字符串向量:

test <- c("A1.7","A1.8")

而且我想使用正则表达式在句点和数字之间插入A1c<=,如下所示:

A1.A1c<=7 A1.A1c<=8

我浏览了一些问题,发现了@ zx8754类似的问题;我试图修改他们问题中发布的答案,但没有运气

insert <- 'A1c<='
n <- 4
old <- test
lhs <- paste0('([[:alpha:]][[:digit:]][[:punct:]]{', n-1, '})([[:digit:]]+)$')
rhs <- paste0('\\1', insert, '\\2')
gsub(lhs, rhs, test)

谁能指导我如何正确执行此操作?

r regex character gsub
1个回答
1
投票

您可以使用

insert <- 'A1c<='
test <- c("A1.7","A1.8")
sub("(?<=\\.)(?=\\d)", insert, test, perl=TRUE)
## => A1.A1c<=7 A1.A1c<=8

请参见online R demo

详细信息

  • (?<=\\.)-与后面紧跟一个点的位置匹配的正向后看]
  • [(?=\\d)-与一个后跟一个数字的位置匹配的正向超前查询。
© www.soinside.com 2019 - 2024. All rights reserved.