我正在努力想出能够从一行文字中提取价格的代码。
由RegEx for Prices?激励,我想出了以下命令:
gregexpr('\\d+(\\.\\d{1,2})', '23434 34.232 asdf 3.12 ')
[[1]]
[1] 7 19
attr(,"match.length")
[1] 5 4
attr(,"useBytes")
[1] TRUE
但是,就我而言,我只希望3.12
匹配而不是34.232
。有什么建议吗?
答案 0 :(得分:3)
我认为这应该有效:
'\\d+\\.\\d{1,2}(?!\\d)'
答案 1 :(得分:2)
\\d+\\.\\d{1,2}(?!\\d)
我不是100%确定r
支持否定前瞻,所以这里有另一种选择:
\\d+\\.\\d{1,2}(?:[^\\d]|$)
答案 2 :(得分:-2)
一个或多个数字后跟一个点,后跟1或2位数字,后跟空格或字符串结尾
\\d+\\.\\d{1,2}(\w|$)
编辑:根据评论,R使用双重转义