Oracle understøtter ikke ikke-fangende grupper (?:)
. Du skal bruge en optagelsesgruppe i stedet for.
Den bryder sig heller ikke om meta-karakteren \s
i perl-stil match inde i en tegnklasse []
(det vil matche tegnene \
og s
i stedet for mellemrum). Du skal bruge POSIX-udtrykket [:space:]
i stedet.
Oracle 11g R2 Schema Setup :
Forespørgsel 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 |