Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 获取字符串中的第一个单词_R_Regex_Stringr - Fatal编程技术网

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*')