Oracle गैर-कैप्चरिंग समूहों का समर्थन नहीं करता (?:) . इसके बजाय आपको एक कैप्चरिंग समूह का उपयोग करना होगा।
इसे पर्ल-स्टाइल व्हाइटस्पेस मेटा-कैरेक्टर \s . भी पसंद नहीं है एक वर्ण वर्ग के अंदर मिलान करें [] (यह वर्णों से मेल खाएगा \ और s व्हाइटस्पेस के बजाय)। आपको POSIX एक्सप्रेशन [:space:] . का इस्तेमाल करना होगा इसके बजाय।
Oracle 11g R2 स्कीमा सेटअप :
क्वेरी 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 |