Ant*_*vec 4 regex google-bigquery
我无法在BigQuery Reference或re2 wiki中找到答案.
在BigQuery Reference中的Regex部分的所有示例中,每个正则表达式之前都有一个'r',但我无法找到它的含义.例如:
REGEXP_EXTRACT(文字,R '(\ W\W \'\W\W)")
在我看来,它是'正则表达式'的类型,因为它允许在下面的字符串中使用'\'和'''.
感谢任何知道并发布此答案的人:)
Fel*_*ffa 11
来自维基百科"一些语言提供了一种方法,用于指定在没有任何语言特定解释的情况下处理文字.这避免了转义的需要,并产生更易读的字符串."
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)'
Run Code Online (Sandbox Code Playgroud)
我可以通过两种方式解决这个问题.使用原始字符串,或逃避转义:
逃离逃脱:
SELECT REGEXP_EXTRACT("ab'cd", '(\\w\\w\'\\w\\w)')
ab'cd
Run Code Online (Sandbox Code Playgroud)
原始字符串:
SELECT REGEXP_EXTRACT("ab'cd", r'(\w\w\'\w\w)')
ab'cd
Run Code Online (Sandbox Code Playgroud)