我有一个字符串,例如"3.1 ml"
或"abc 3.1 xywazw"
我想"3.1"
从这个字符串中提取。我发现了许多有关从字符串中提取数字的关于stackoverflow的问题,但是对于十进制数,没有解决方案。
此方法使小数点和小数部分为可选,并允许提取多个数字:
str <- " test 3.1 test 5"
as.numeric(unlist(regmatches(str,
gregexpr("[[:digit:]]+\\.*[[:digit:]]*",str))
) )
#[1] 3.1 5.0
关于负数的担忧可以通过可选的perl样式提前解决:
str <- " test -4.5 3.1 test 5"
as.numeric(unlist(regmatches(str,gregexpr("(?>-)*[[:digit:]]+\\.*[[:digit:]]*",str, perl=TRUE))))
#[1] -4.5 3.1 5.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句