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

标签 r regex gsub

我使用 gsub R 中的函数以删除数字中不需要的字符。所以我应该从字符串中删除每个不是数字的字符,. , 和 - .我的问题是正则表达式没有删除一些非数字字符,如 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"

所需输出:
[1] "1.2"  "4.5"  "3.2"  "-10"  "22" "1.3"

谢谢你。

最佳答案

只需使用

gsub("[^0-9.-]", "", x)

您可以在多个 - 的情况下和 .有第二个正则表达式处理这个问题。
如果您对此感到困惑,请打开一个新问题。

(如果需要,请确保将 . 更改为 ,)

关于r - 如何在 R 中使用 gsub 从字符串中删除非数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722846/

相关文章:

r - 如何在 Shiny 的模块中禁用和启用 react 性?

r - 以编程方式在 data.table 中使用 by 对列进行操作

java - 正则表达式组匹配返回错误值

regex - 使用 sed 失败解析 shebang

r - 使用 gsub 替换具有相同字符数的匹配项

r - 如何根据现有日期创建年周字符串值序列?

r - 确定 `identical()` 返回 FALSE 的原因

mysql - SQL 字符串的正则表达式只允许对变量命名表进行 SELECT 查询?

regex - Gsub 正则表达式替换

linux - 替换制表符分隔文件linux中封闭字符串中的制表符