teradata 中的正则表达式,如何传递两个值

regex in teradata, how to pass two values in

我有以下有效的正则表达式,但如果 shop_id 也

我需要找到这个表达式
   regexp_substr(field_text ,'(?<=\?page_id\=)(.*?)(?=\&)' ,1 ,1, 'i')

我试过这个:

   regexp_substr(fullurl ,'(?<=(\?page_id\=|/page_id/))(.*?)(?=\&)' ,1 ,1, 'i')

但它指出这不是一个有效的模式,有人可以解释为什么不可以,因为它在正则表达式站点中有效。

您需要为替代表达式添加圆括号:

REGEXP_SUBSTR(fullurl ,'(?<=\?(page|shop)_id\=)(.*?)(?=\&)' ,1 ,1, 'i')