Oracleは、非キャプチャグループ(?:)
をサポートしていません。 。代わりにキャプチャグループを使用する必要があります。
また、perlスタイルの空白のメタ文字\s
も好きではありません。 文字クラス内で一致[]
(\
の文字と一致します およびs
空白の代わりに)。 POSIX式[:space:]
を使用する必要があります 代わりに。
Oracle11gR2スキーマのセットアップ :
クエリ1 :
select *
from (
select column_value str
from table(sys.dbms_debug_vc2coll('123','1234','12345','12 135', '1', '12 3'))
)
where regexp_like(str, '\d([()[:space:]#-]*\d){3,}')
結果 :
| STR |
|--------|
| 1234 |
| 12345 |
| 12 135 |