我在摆脱$50m.
中的句点时遇到问题,这是this的后续问题。最初的问题由@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 :(得分:1)
您必须将正则表达式更改为
\\$[0-9.,]+?[mbt]?(?=(?:[.,] | |$))
^^^^
为了摆脱点。
答案 1 :(得分:1)
尝试正则表达式:\$[1-9]\d*(?:,\d+)*(?:\.\d+)?[mbt]?
答案 2 :(得分:0)
答案已经在您的旧问题中,由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)