正则表达式 – 在两个可能的分隔符之一之前找到一个单词

前端之家收集整理的这篇文章主要介绍了正则表达式 – 在两个可能的分隔符之一之前找到一个单词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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

猜你在找的正则表达式相关文章