Google bigquery 正则表达式仅捕获符号

Google bigquery 正则表达式仅捕获符号,google-bigquery,Google Bigquery,任何人都知道适当的正则表达式来获取任何符号(如./uu等)。我试图提取任何看起来不像1-3个完整单词的东西 Online Chat http://mailserver.test.com/zjalLNG391Vkfalka0 social test.com poc_email_outbound~51-tester-test~2018-04-12 http://mailserver.test.com/u/130931jiojf101901 要仅获取以下内容: http://mailserver.t

任何人都知道适当的正则表达式来获取任何符号(如./uu等)。我试图提取任何看起来不像1-3个完整单词的东西

Online Chat
http://mailserver.test.com/zjalLNG391Vkfalka0
social
test.com
poc_email_outbound~51-tester-test~2018-04-12
http://mailserver.test.com/u/130931jiojf101901
要仅获取以下内容:

http://mailserver.test.com/zjalLNG391Vkfalka0
test.com
poc_email_outbound~51-tester-test~2018-04-12
http://mailserver.test.com/u/130931jiojf101901

您可以使用
REGEXP\u CONTAINS(行,r'[./\u]')

见下面的例子

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'Online Chat' line UNION ALL
  SELECT 'http://mailserver.test.com/zjalLNG391Vkfalka0' UNION ALL
  SELECT 'social' UNION ALL
  SELECT 'test.com' UNION ALL
  SELECT 'poc_email_outbound~51-tester-test~2018-04-12' UNION ALL
  SELECT 'http://mailserver.test.com/u/130931jiojf101901' 
)
SELECT line
FROM `project.dataset.table`
WHERE REGEXP_CONTAINS(line, r'[./_]')  
要排除所有非单词字符,可以使用
REGEXP\u CONTAINS(line,r'\W')
,这相当于
REGEXP\u CONTAINS(line,r'[^0-9A-Za-z'])


您可以使用更多要从标准中排除的字符来扩展后者

,只是为了添加一些对其他用户可能也有用的链接,在中,您有使用
REGEXP\u CONTAINS
和其他几个正则表达式函数的参考。此外,您应该知道BigQuery使用re2库来提供正则表达式,因此您也可以查看一下以了解更多有关它的信息。