r-regex以排除数字后面的句点



我在$50m.中处理句点时遇到问题。这是一个后续问题。最初的问题由@Tim Biegeleisen回答。

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)

所需输出:"$5" "$10,000" "$5m" "$50m" "$50.2m" "$50,2m"

您必须将正则表达式更改为

\$[0-9.,]+?[mbt]?(?=(?:[.,] | |$))
^^^^

以便去掉圆点。

尝试regex:$[1-9]d*(?:,d+)*(?:.d+)?[mbt]?

演示

答案已经在您的旧问题中,由erocoar回答。尽管如此,他还是创造了一个阵列。

text <- "$5, $10,000, and $5m, and $50m. and $50.2m and $50,2m"
m <- gregexpr("\$\d+((,|\.)?)(\d*)?(m)?", text, perl=TRUE)
regmatches(text, m)

最新更新