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

标签 regex google-bigquery

我在 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/

相关文章:

google-bigquery - gcp.bigquery 引用页面不再可用?

java - 如何从字符串分词器函数中设计和分割标记?

c# - 如何在 Regex 中指定匹配模式的优先级?

scala - bigquery 在数组外添加重复记录

google-bigquery - 标准 SQL 弧度函数

java - 如何让我的客户将 BigQuery 查询结果导出为 CSV

sql - 在 BigQuery 中创建具有重复嵌套列的表语句

javascript - 验证 javascript 十进制数

regex - 惰性量词 {,}?没有像我期望的那样工作

javascript - 正则表达式: matching certain format but excluding specific value