我有一个页面标题字符串,我想从中获取子字符串(品牌名称(,但它并不总是出现在同一位置。
页面标题:
- 品牌名称A|立即预订
- 品牌名称B|在此处订购
- 内容|品牌名称A|立即订购
- 内容|品牌名称7 |单击此处
所需输出:
- 品牌名称A
- 品牌名称B
- 品牌名称A
- 品牌名称7
我可以使用(^[^|]+)
,并用|(.*).*(?=|)
从第二个中获取品牌名称——尽管它也获取了|。
但是,当有1个管道时,我需要应用第一个正则表达式,当有2个管道时需要应用第二个正则表达式。有什么建议吗?
使用REGEXP_EXTRACT
,我们可以尝试:
REGEXP_EXTRACT("Content | Brand Name A | Order now", "\s*([^|]+?)\s+\|[^|]+$")
这是一个regex演示。