我正在 Oracle 11g 数据库上使用 PL/SQL v10。
我有代码存储在我需要提取的问题表的描述列中。为此,我正在努力生成在 101regex 中运行良好但在 oracle 中失败的正则表达式,我假设我使用的语法不正确。
select '''' || listagg(regexp_substr(q.questiondescription,'(LIF|LPA) ?\d{1,2}.\d{1,2}(\.\d{1})?'), ''', ''')
within group (order by q.questionid) || ''''
from question q
where q.isthunderheadonly = 0 or q.isthunderheadonly is null
我需要匹配的模式:
LIF 1.2 Both
LIF 2.7.1 Address Line 1
LIF 4.13 Occupation
LIF 10.6.1 Address Line 1
LPA0.1 What type of LPA do you want?
LPA0.2 Do you have same attorneys with your partner ?
我的正则表达式哪里出错了?
编辑:我得到的结果
'LIF 3.1', 'LIF 4.1', 'LIF 4.2', 'LIF 5.1', 'LIF 7.1', 'LPA0.1', 'LPA0.2'
我认为它忽略了第二组之后的所有内容。