正则表达式PL / SQL

时间:2014-06-05 22:39:43

标签: sql regex database oracle plsql

我正在尝试在PL / SQL中使用一些正则表达式。

我尝试检查以下模式:LOKATIONS_ID => / LAND / ORT /GEBÄUDE/

我试过这个:

create or replace function check_lok_id(lok_id in varchar2) return boolean
is
begin
  if regexp_like (lok_id, '^(/[A-Z]+?){3}/$)')
    then
      return true;
  else
    return false;
  end if;
end;

但不幸的是,到目前为止我测试的这个和其他一些正则表达式都不起作用。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您的示例无法匹配,因为已翻译的字符Ä不在A-Z范围内。

试试这个正则表达式:

^(/\w+?){3}/$

或者,如果您只想匹配所有语言的大写字母:

^(/[[:upper:]]+?){3}/$

请参阅live demo