正则表达式 – 在两个可能的分隔符之一之前找到一个单词
发布时间:2020-12-14 05:59:41 所属栏目:百科 来源:网络整理
导读:word:12335anotherword:2323434totallydifferentword/455word/32 我需要在:或/之前使用基本R函数来获取字符串.我可以使用stringr执行此操作,但不希望向我的包添加另一个依赖项.单词可以具有可变数量的字符,但总是以(一个)分隔符结束.我不需要保留之后的内容
word:12335 anotherword:2323434 totallydifferentword/455 word/32 我需要在:或/之前使用基本R函数来获取字符串.我可以使用stringr执行此操作,但不希望向我的包添加另一个依赖项.单词可以具有可变数量的字符,但总是以(一个)分隔符结束.我不需要保留之后的内容. 解决方法
也许试试:
x <- c("word:12335","anotherword:2323434","totallydifferentword/455","word/32") lapply(strsplit(x,":|/"),function(z) z[[1]]) #as a list sapply(strsplit(x,function(z) z[[1]]) #as a string 有gsub的正则表达式解决方案也可以工作但是在我遇到类似问题的经历中,strsplit将不那么雄辩但更快. 我认为这个正则表达式也会起作用: gsub("([a-z]+)([/|:])([0-9]+)","1",x) 在这种情况下,gsub更快: Unit: microseconds expr min lq median uq max 1 GSUB() 19.127 21.460 22.392 23.792 106.362 2 STRSPLIT() 46.650 50.849 53.182 54.581 854.162 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |