Oracle REGEXP_LIKE语法或键值对字符串验证的触发器

时间:2015-02-23 03:15:39

标签: regex oracle

我需要验证一个包含以下格式的键值对的字符串(在oracle中):

ABC=DEF
ABC=DEF|GHI=JKL

我已经尝试了很多正则表达式,但我似乎无法让它正常工作。我一直在寻找并找到一些人试图做同样的事情,但找不到任何有效的解决方案。

我需要确保进入数据库表列的值采用上述格式。

有人能帮助我吗?

谢谢, -Steve

2 个答案:

答案 0 :(得分:0)

您可以尝试下面的正则表达式。

^([[:alpha:]]+=[[:alpha:]]+|[[:alpha:]]+=[[:alpha:]]+\|[[:alpha:]]+=[[:alpha:]]+)$

DEMO

答案 1 :(得分:0)

您可以使用regexp_like来获得预期的结果。即:

select cad from   
(select 'ABC=DEF|GHI=JKL' cad from dual union all
select 'ABC=DEF|GHI=JKL|' cad from dual union all
select 'ABC=DEF|ABC=' cad from dual)
where regexp_like(cad,'^(((\w+=\w+\|)+(\w+=\w+))|(\w+=\w+))$')

输出:

CAD             
----------------
ABC=DEF|GHI=JKL