SELECT
ocr_text,
bucket,
REGEXP_EXTRACT('-?[0-9]+(\.[0-9]+)?', ocr_text)
FROM temp
我正在尝试从一个没有货币单位的字符串中提取金额。不应匹配任何没有小数的数字。允许逗号,假设它们遵循正确的规则(在百位标记处)。
56 no (missing decimals)
56.45 yes
120 no (missing decimals)
120.00 yes
1200.00 yes
1,200.00 yes
1,200 no (missing decimals)
1200 no (missing decimals)
134.5 no (decimal not followed by 2 digits)
23,00.00 no (invalid comma location)
我是一个对正则表达式一窍不通的新手,所以我知道我的上述声明已经不符合我列出的条件。然而,我在我的 REGEX_EXTRACT
行上遇到了错误 (INVALID_FUNCTION_ARGUMENT) premature end of char-class
。
有人能指点我正确的方向吗?我该如何解决当前的问题?如何修改才能正确地包含其他列出的条件?
:-)
。 - Tim Biegeleisen