0
使用gsub()
或RI substr()
由大写字母标示零件想以下字符串分成使用GSUB
s <- c("IntAssisACTG", "IntFullPSYC", "IntAssocSOC")
分成三个子部分
(1)为 “Int” (2)的下字母集合,以“Int”之后的第一个大写字母开头,在下一个大写字母之前结束,但长度不同(例如“Assis”,“Full”,“Assoc”) (3)其余的字母,不同长度(例如“ACTG”,“PSYC”,“SOC”)
我希望将三个部分原样返回,并将其作为一个向量(例如, “Int”“Assis”“ACTG”),我已经读过gsub更适合我需要的东西,因为它会分裂,而不会丢弃开始每个分割的角色。
我发现这个堆栈溢出
gsub("(?!^)(?=[[:upper:]])", " ", s, perl=T)
而且越来越接近我想除了什么(i)其分裂所有首都的最后一段,而我需要他们在一个段(II)我不知道如何它的工作原理
任何帮助表示赞赏。
谢谢@Toto。我想我理解第二个捕获组。它的内容是:“如果有一个或多个大写字母,请将空间置于所引用段的前面。那是对的吗?我不知道第一组“(?!^)”是如何工作的。你能解释一下吗? – llewmills
@llewmills:你是对的大号。 '(?!^)'被称为负反向保留,它是一个零长度的断言,假设我们不在字符串的开头。你会在这里找到有用的信息:http://www.regular-expressions.info/lookaround html的 – Toto