【发布时间】:2021-09-10 22:58:56
【问题描述】:
我有一个如下所示的字符串:
"文字文字文字 $123,000,000 $456,000,000"
我能够找到另一个正则表达式解决方案来提取字符串末尾最后一个空格 ([^\s]+$) 之后的字符,但我无法弄清楚如何排除逗号和美元签名。
我想只提取数字,同时排除字符串中最后一个空格后面的任何其他非数字字符。而不是“$ 456,000,000”我想提取“456000000”
非常感谢您的任何指导。
【问题讨论】:
我有一个如下所示的字符串:
"文字文字文字 $123,000,000 $456,000,000"
我能够找到另一个正则表达式解决方案来提取字符串末尾最后一个空格 ([^\s]+$) 之后的字符,但我无法弄清楚如何排除逗号和美元签名。
我想只提取数字,同时排除字符串中最后一个空格后面的任何其他非数字字符。而不是“$ 456,000,000”我想提取“456000000”
非常感谢您的任何指导。
【问题讨论】:
我们可以在base R 中使用sub - 匹配所有字符.* 直到一个或多个空格(\\s+),替换为空白(""),然后用gsub 换行以删除@ 987654327@和,
gsub("[$,]", "", sub(".*\\s+", "", "Text text text $123,000,000 $456,000,000"))
#[1] "456000000"
【讨论】:
trimws() 是一个方便的基本函数,可以删除字符串开头和结尾的多余空格。
gsub 和trimws 即trimws("Text text text $123,000,000 $456,000,000", whitespace = "\\s*\\$.*") [1] "Text text text"