我需要验证一个包含以下格式的键值对的字符串(在oracle中):
ABC=DEF
ABC=DEF|GHI=JKL
我已经尝试了很多正则表达式,但我似乎无法让它正常工作。我一直在寻找并找到一些人试图做同样的事情,但找不到任何有效的解决方案。
我需要确保进入数据库表列的值采用上述格式。
有人能帮助我吗?
谢谢, -Steve
答案 0 :(得分:0)
您可以尝试下面的正则表达式。
^([[:alpha:]]+=[[:alpha:]]+|[[:alpha:]]+=[[:alpha:]]+\|[[:alpha:]]+=[[:alpha:]]+)$
答案 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