【发布时间】:2018-07-30 05:42:35
【问题描述】:
我正在尝试编写一个表达式,从具有相应货币符号和潜在金额缩写(m 或 k)的字符串中提取数字:
text <- "$10000 and $10,000 and $5m and $50m and $50.2m and $50,2m"
str_extract(text, "\\$(\\d+)[a-z]+") # solution_1
str_extract(text, "\\$(\\d+)+") #solution_2
期望的输出:
"$10000 $10,000 $5m $50m $50.2m $50,2m"
问题在于solution_1 仅提取“$5m”而solution_2 仅提取“$10000”。
更新:@Tim Biegeleisen 提供了一个很好的解决方案。我也试图最终摆脱一个时期,例如$50m. and... 获取$50m。
text <- "$5, $10,000, and $5m, and $50m. and $50.2m and $50,2m"
m <- gregexpr("\\$[0-9.,]+?[mbt]?(?=(?:, | |$))", text, perl=TRUE)
regmatches(text, m)
【问题讨论】: