regex if-then模式匹配



我有一个页面标题字符串,我想从中获取子字符串(品牌名称(,但它并不总是出现在同一位置。

页面标题:

  • 品牌名称A|立即预订
  • 品牌名称B|在此处订购
  • 内容|品牌名称A|立即订购
  • 内容|品牌名称7 |单击此处

所需输出:

  • 品牌名称A
  • 品牌名称B
  • 品牌名称A
  • 品牌名称7

我可以使用(^[^|]+),并用|(.*).*(?=|)从第二个中获取品牌名称——尽管它也获取了|。

但是,当有1个管道时,我需要应用第一个正则表达式,当有2个管道时需要应用第二个正则表达式。有什么建议吗?

使用REGEXP_EXTRACT,我们可以尝试:

REGEXP_EXTRACT("Content | Brand Name A | Order now", "\s*([^|]+?)\s+\|[^|]+$")

这是一个regex演示。

最新更新