正则表达式排除数字后的句点

时间:2018-07-30 20:09:08

标签: r regex

我在摆脱$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"

3 个答案:

答案 0 :(得分:1)

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

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

为了摆脱点。

答案 1 :(得分:1)

尝试正则表达式:\$[1-9]\d*(?:,\d+)*(?:\.\d+)?[mbt]?

Demo

答案 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)