繁体   English   中英

如何使用 REGEXP 提取 BigQuery 中的特定组合

[英]How to extract with REGEXP the specific combination in BigQuery

我有一个很长的文本,这是它的一部分: "placement":1,"protocols":[2,3,5,6]},"secure":1

而且我需要提取协议列表,所以结果只会是 [2,3,5,6]。

我正在使用REGEXP_EXTRACT(text, r'"protocols":([^"]+)') ,但结果总是不同的:有时它只是[2,3,5,6]有时它需要更多: [ 2,3,5,6]},

如何构建我的 REGEXP,以便结果始终只是括号中的列表?

您可以使用

REGEXP_EXTRACT(text, r'"protocols"\s*:\s*(\[[^][]+])')

请参阅正则表达式演示

要获取不带括号的protocols的内容,请将分组边界向内移动一点:

REGEXP_EXTRACT(text, r'"protocols"\s*:\s*\[([^][]+)]')

请参阅此正则表达式演示

细节

  • "protocols" - 文字文本
  • \s*:\s* - 用零个或多个空格括起来的冒号
  • \[ - 一个[字符
  • [^][]+ - []以外的一个或多个字符
  • ] - 一个]字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM