Google BigQuery可以做Case-Insensitive REGEXP_Match吗?

时间:2017-03-23 21:40:46

标签: regex perl google-bigquery

在谷歌BigQuery我想检查确认'或者'确认':

REGEXP_CONTAINS(h.page.PagePath, r'Confirm') or
REGEXP_CONTAINS(h.page.PagePath, r'confirm'))

我是Perl人,在Perl我们做

$foo =~ /confirm/i    # case-insensitive

Google BigQuery是否有任何标志可以修改REGEXP_MATCH?我没有在他们的在线文档中看到任何示例。

1 个答案:

答案 0 :(得分:10)

REGEXP_CONTAINS使用RE2 library,因此您可以使用这样的内联修饰符:

REGEXP_CONTAINS(h.page.PagePath, r'(?i)confirm') 
                                   ^^^^  

参见RE2 docs:

  

(?flags)在当前组中设置标志;非捕获   ...
  的标志
  i不区分大小写(默认为false)
  m多行模式:^$匹配开始/结束行以及开始/结束文本(默认为false)
  s.匹配\n(默认为false)
  U ungreedy:交换x*x*?x+x+?等的含义(默认为false)

  标记语法为xyz(设置)或-xyz(清除)或xy-z(设置xy,清除z)。