REGEXP_EXTRACT中的r是什么意思(word,r'(\ w\w \'\ w\w)')

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)