任何人都可以告诉我如何从具有多个分隔符的.txt文件中读取数据。请考虑以下示例以供参考,
< Mike> //// ???? [011] - [234564] ///>>> [ABC]
< Hardley davidson> /// ?? [080] - [42071186] .. [DEC]
我的输出应该如下,
Mike 011234564 ABC
Hardley davidson 08042071186 DEC
谢谢&问候, 莫汉
答案 0 :(得分:5)
我们可以使用readLines
阅读它,然后使用正则表达式删除不需要的字符
gsub('(?<=[0-9])\\s+(?=[0-9])|^\\s+|\\s+$', '',
gsub('[[:punct:]]+', ' ', lines), perl=TRUE)
#[1] "Mike 011234564 ABC" "Hardley davidson 08042071186 DEC"
如果模式相似,我们可以使用单个sub
sub(".*\\<([^> ]+)[^0-9]+([0-9]+)[^0-9]+([0-9]+)[^A-Z]+([A-Z]+).*",
"\\1 \\2\\3 \\4", lines)
#[1] "Mike 011234564 ABC" "davidson 08042071186 DEC"
lines <- readLines(textConnection("< Mike >////????[011]-[234564]///>>>[ABC]
< Hardley davidson >///??[080]-[42071186]..[DEC]"))