如何在BigQuery中进行反向引用?当前的正则表达式是:
(["'])?(?:[01](?:.0)?|true|false)\1?
当我跑的时候
SELECT REGEXP_CONTAINS("true", r'''(["'])?(?:[01](?:.0)?|true|false)\1?''')
我得到以下错误:无法分析正则表达式:转义序列无效:\1什么是正确的方法来做这件事?(添加另一个\“修复”了这个错误,但是反向引用不起作用--上面应该返回true)。
\
true
kcwpcxri1#
BigQuery和re2不支持反向引用。你可以使用一个稍微宽松的正则表达式,像这样:
SELECT REGEXP_CONTAINS("true", r'''["']?(true|false|0(.0)?|1(.0)?)["']?''')
请注意,类似"true'的东西将匹配,因此如果需要非常严格,则需要处理所有情况,而不仅仅是能够逃脱['"]?
"true'
['"]?
1条答案
按热度按时间kcwpcxri1#
BigQuery和re2不支持反向引用。你可以使用一个稍微宽松的正则表达式,像这样:
请注意,类似
"true'
的东西将匹配,因此如果需要非常严格,则需要处理所有情况,而不仅仅是能够逃脱['"]?