我在$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)