我试图替换BigQuery上大写字母之前的所有小写字母。
例如:
string = aDepartment of test, kHospital of test
更换后
Department of test, Hospital of test
我做了一个正则表达式[a-z](?=[A-Z])
。这个正则表达式在regex101上运行良好。但是当我在BigQuery上使用这个正则表达式时,它显示Cannot parse regular expression: invalid perl operator: (?=
错误。
我不明白这个错误是怎么回事。有人能检查这个正则表达式,使它可以在BigQuery上工作吗?
2条答案
按热度按时间4si2a6ki1#
查找范围为not supported in RE2 library。
您可以使用
参见regex demo。
[a-z]
-ASCII小写字母([A-Z])
-第1组(\1
):ASCII大写字母。vsikbqxv2#
遗憾的是,Google BigQuery使用的是RE2表达式库,该库目前不支持正向或反向lookaheads
我想你可以让regex101使用一个不同的引擎,这样你就可以调试一些与BigQuery兼容的东西,在那里你会看到
?=
是错误的。如果你不需要前瞻,你可以简单地删除这两个字符,只要记住你现在将捕获大写字母(所以你需要在你的替换中添加它)。