我在 BigQuery Reference 或 re2 wiki 中都找不到答案。
在 BigQuery Reference 中 Regex 部分的所有示例中,每个 regex 之前都有一个“r”,但我在任何地方都找不到它的含义。例如:
REGEXP_EXTRACT(word,r'(\w\w\'\w\w)')
在我看来,它是 'regex' 或其他类型的类型转换,因为它允许在以下字符串中使用 '\' 和 '''。
感谢任何知道并发布答案的人:)
最佳答案
来自维基百科“一些语言提供了一种方法来指定要处理的文字,而无需任何特定于语言的解释。这避免了转义的需要,并产生更清晰的字符串。”
http://en.wikipedia.org/wiki/String_literal#Raw_strings
例如,这看起来像一个有效的正则表达式,但转义会被错误解释:
SELECT REGEXP_EXTRACT("ab'cd", '(\w\w\'\w\w)')
Error: Invalid string literal: '(\w\w\'\w\w)'
我可以通过两种方式解决这个问题。使用原始字符串,或转义:
逃脱逃生:
SELECT REGEXP_EXTRACT("ab'cd", '(\\w\\w\'\\w\\w)')
ab'cd
原始字符串:
SELECT REGEXP_EXTRACT("ab'cd", r'(\w\w\'\w\w)')
ab'cd
关于regex - REGEXP_EXTRACT(word,r'(\w\w\'\w\w)' ) 中的 r 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829101/