1

正規表現(オラクル)の除外ケースについて緊急の助けが必要です。

主な正規表現は次のとおりです。

1([^4][:;]|[0-9][^:;].*)

特定の文字列「1013;」を除外するには、この正規表現を変更または強化する必要があります。しかし達成できませんでした。私は2日間解決策を探していましたが、オラクルで機能するものを見つけることができませんでした.

最も一般的な代替ソリューション (?!stringToExclude)Regexp は、Oracle では機能しません。(私が持っているバージョン: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production)

この問題について何か考えはありますか?どうすればこの問題を克服できますか?

新しい正規表現の検証をチェックする私のテストSQLステートメントは次のとおりです。

select regexp_substr('1013;', '1([^34][:;]|[0-9][^:;].*)') from dual --> returns 1013;
select regexp_substr('10133;', '1([^34][:;]|[0-9][^:;].*)') from dual --> returns 10133;

select regexp_substr('1013;', 'to be regexp') from dual --> should return nothing
select regexp_substr('1013', 'to be regexp') from dual --> should return nothing
select regexp_substr('1013:', 'to be regexp') from dual --> should return nothing
select regexp_substr('10133;', 'to be regexp') from dual --> should return 10133;
4

1 に答える 1