如何从字符串中提取字符串的第一个数字
问题描述:
我想从字符串中提取第一个数字。如何从字符串中提取字符串的第一个数字
s <- '100 xx-50 xx xxxx'
我可以使用str_extract从stringr
str_extract(s, '\\d+')
[1] "100"
如何提取与基础R子字符串? 我试过了:
sub('(\\d+)\\s.', '\\1', s)
[1] "100x-200 xx hello"
我做错了什么?我无法弄清楚。 非常感谢。
答
我们可以使用sub
匹配一个或后跟其他字符(.*
)更多的空间(\\s+
)和空白(""
)
sub("\\s+.*", "", s)
#[1] "100"
在OP的代码替换,在空格后( \\s
)有一个.
这意味着任何字符和字符串中的字符数量更多,因此它不匹配字符串中的字符。相反,如果我们被捕获组的路线走,
sub("^(\\d+)\\s.*", "\\1", s)
#[1] "100"
的.*
意味着零个或多个字符,也注意到^
用于指定字符串的开头,这样它不会从匹配数字开始其他字符串
谢谢!我错过了* – zesla
@zesla谢谢你的提示。你也可以勾选[here](https://stackoverflow.com/help/someone-answers) – akrun