Regex 从字符串中提取第一个数字

Regex 从字符串中提取第一个数字,regex,r,Regex,R,我有一个字符串thisLine,它包含11个由空格分隔的数字。我只想得到第一个数字。我试过命令: grep('\\d*\\.\\d*',thisLine,value=TRUE) 它返回整个字符串,而不是第一个数字。如何仅返回第一个数字?我确信有很多可能性,我会考虑以下几种: thisLine <- paste(runif(11), collapse = " ") thisLine # [1] "0.841216114815325 0.861485596280545 0.973681036

我有一个字符串thisLine,它包含11个由空格分隔的数字。我只想得到第一个数字。我试过命令:

grep('\\d*\\.\\d*',thisLine,value=TRUE)

它返回整个字符串,而不是第一个数字。如何仅返回第一个数字?

我确信有很多可能性,我会考虑以下几种:

thisLine <- paste(runif(11), collapse = " ")
thisLine
# [1] "0.841216114815325 0.861485596280545 0.973681036382914 0.683699210174382 0.95226536039263 0.368689567316324 0.173984130611643 0.497511914698407 0.870743532432243 0.45606177020818 0.222731305286288"

sub("\\s+.*", "", thisLine)              # assumes no leading space
sub("\\s*(\\S+?)\\s.*", "\\1", thisLine) # handles leading spaces
strsplit(thisLine, " ")[[1]][1]          # more flexible if you want 2nd, 3rd, ...

使用
strex
包中的
str\u first\u number()
函数可以很好地实现这一点

库(strex)
约翰史密斯[1]34
第n个序列号(约翰史密斯,n=1)#第一个序列号
#> [1] 34
第n个数字(约翰史密斯,n=2)第二个数字
#> [1] 6
第n个数字(约翰史密斯,n=-1)#最后一个数字
#> [1] 85
str_last_编号(约翰史密斯)
#> [1] 85

由(v0.2.0)于2018-09-03创建。

谢谢!我最终使用了strsplit。
# [1] "0.841216114815325"