R 获取字符串中的第一个单词
我想从向量中提取第一个字符串。比如说,R 获取字符串中的第一个单词,r,regex,stringr,R,Regex,Stringr,我想从向量中提取第一个字符串。比如说, y<- c('london/hilss', 'newyork/hills', 'paris/jjk') 使用gsub gsub("/.*", '', y) [1] "london" "newyork" "paris" 这个正则表达式也可以很好地工作 正则表达式:^[^\/]+ 它将从字符串的开头开始匹配,直到找到/ ^字符类之外的[]是字符串开头的 而字符类中的^表示 对于更一般的情况,例如 y<- c('london/hilss',
y<- c('london/hilss', 'newyork/hills', 'paris/jjk')
使用
gsub
gsub("/.*", '', y)
[1] "london" "newyork" "paris"
这个正则表达式也可以很好地工作 正则表达式:
^[^\/]+
它将从字符串的开头开始匹配,直到找到/
^
字符类之外的[]
是字符串开头的
而字符类中的^
表示
对于更一般的情况,例如
y<- c('london/hilss', 'newyork.hills', 'paris-jjk')
stringr::str_extract(a,'\\b*')
该解决方案不起作用!这就是为什么新问题没有询问转义字符。你能解释一下为什么/.
不需要转义,并且在转义时,\\/.
会产生相同的结果吗?换句话说,gsub(“/.*”,“”,y)
与gsub(“\\/.*”,“”,y)
@Nettle相同。我的理解是,正斜杠不需要转义。通过添加“\`基本上是转义不需要转义的内容,因此不会发生任何变化。stru extract
返回字符向量,而stru match
返回字符矩阵@肖恩:你有偏好吗?在我看来,它们基本上是一样的,尽管我对矩阵很恼火。
y<- c('london/hilss', 'newyork.hills', 'paris-jjk')
stringr::str_extract(y, '\\w*')