【发布时间】:2017-09-08 02:52:48
【问题描述】:
关于正则表达式,在下面的代码中,当遇到 str ^$$#$ 时,它的拆分。但是单 $ 不应该改变它的拆分方式。
例如:RefinementFilter$$#$TAGS_AND$$#$karen.bitran - LAD_ODA_IB SE
上面的例子应该被拆分为 细化过滤器 TAGS_AND karen.bitran - LAD_ODA_IB SE
但是在遇到单个 $ 时,它会切断剩余的字符串部分并只给出字符串的一部分
细化过滤器 TAGS_AND karen.bitran - LAD_ODA_IB SE
L_VALUE:=RefinementFilter$$#$TAGS_AND$$#$karen.bitran - LAD_ODA_IB SE > $10K 人力资源
WITH T AS
(SELECT L_VALUE STR FROM DUAL
)
SELECT MAX(DECODE(LEVEL,1,REGEXP_SUBSTR(STR,'[^($$#$)]+',1,LEVEL))) ,
MAX(DECODE(LEVEL,2,REGEXP_SUBSTR(STR,'[^($$#$)]+',1,LEVEL))),
MAX(DECODE(LEVEL,3,REGEXP_SUBSTR(STR,'[^($$#$)]+',1,LEVEL)))
INTO L_VAL1,
L_VAL2,
L_VAL3
FROM T
CONNECT BY REGEXP_SUBSTR(STR,'[^($$#$)]+',1,LEVEL) IS NOT NULL;
【问题讨论】:
-
问题出在:^。请注意:\$\$\#\$ 只会找到这个确切的“东西”并忽略单个 $。我建议使用:regexr.com 它为调试您的正则表达式提供了很大的可能性