假设我需要将一个字符串分成列表中的不同部分,例如我想把字符串
当然,这似乎很浪费(即使它在一个
"aaa12xxx"
分成三个部分。
一种可能的方法是进行三个gsub
调用:
parts = c()
parts[1] = gsub('([[:alpha:]]+)([0-9]+)([[:alpha:]]+)', '\\1', "aaa12xxx")
parts[2] = gsub('([[:alpha:]]+)([0-9]+)([[:alpha:]]+)', '\\2', "aaa12xxx")
parts[3] = gsub('([[:alpha:]]+)([0-9]+)([[:alpha:]]+)', '\\3', "aaa12xxx")
当然,这似乎很浪费(即使它在一个
for
循环内)。有没有一种函数可以从正则表达式和测试字符串中简单地返回部分列表?
unlist(m)
然后像普通原子向量一样对其进行索引,而不是每次都使用双重索引。 - David Arenburggsub
内部使用perl = TRUE
作为一个参数是没有问题的。此外,如果没有perl = TRUE
,就不能进行向后查找。 - David Arenburg