如何在R中使用gsub从字符串中删除非数字字符?

jai*_*.jr 2 regex r gsub

我使用gsubR中的函数删除数字中不需要的字符。因此,我应该从字符串中删除所有不是数字的字符.,和-。我的问题是,正则表达式不去除一些非数字字符,如d+<

以下是我的正则表达式,gsub执行及其输出。如何更改正则表达式以实现所需的输出?

电流输出:

gsub(pattern = '[^(-?(\\d*\\.)?\\d+)]', replacement = '', x = c('1.2<', '>4.5', '3+.2', '-1d0', '2aadddab2','1.3h'))
[1] "1.2<"  ">4.5"  "3+.2"  "-1d0"  "2ddd2" "1.3"
Run Code Online (Sandbox Code Playgroud)

所需的输出:

[1] "1.2"  "4.5"  "3.2"  "-10"  "22" "1.3"
Run Code Online (Sandbox Code Playgroud)

谢谢。

And*_*ico 11

只需使用

gsub("[^0-9.-]", "", x)
Run Code Online (Sandbox Code Playgroud)

你可以在多种情况下-,并.有第二正则表达式处理这一点。如果您遇到困难,请打开一个新问题。


(请务必更改.,如果需要的话)

  • 这实际上可以通过“stringr”包获得。 (3认同)