توضیحات
این تابع همانند تابع SUBSTR است و این امکان را میدهد تا قسمتی از رشته را با توجه به الگوی مورد نظر جدا کنیم.
دستور
تابع REGEXP_SUBSTR به صورت زیر نوشته میشود:
1 | REGEXP_SUBSTR( string, pattern [, start_position [, nth_appearance [, match_parameter [, sub_expression ] ] ] ] ) |
.
PATTERN: الگویی را برای تطبیق دادن ارائه میدهد.
start_position: گزینهای اختیاری است، نشان دهنده جایی است که جستوجو از آنجا آغاز میشود.
nth_appearance: گزینهای اختیاری است، نشان دهنده این است که خروجی چندمین تکرار الگو باشد.
match_parameter: گزینهای اختیاری است، امکان تغییر رفتار تابع را میدهد.
Subexpression: گزینهای اختیاری است، زمانی به کار میرود که الگو یک زیرجمله دارد و میخواهیم مشخص کنیم کدام زیرجمله مدنظرمان است.
مثال
مثالی از خروجی تابع REGEXP_SUBSTR را مشاهده میکنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | SELECT REGEXP_SUBSTR ( 'TechOnTheNet is a great resource' , '(\S*)(\s)' ) FROM dual; Result: 'TechOnTheNet ' SELECT REGEXP_SUBSTR ( 'TechOnTheNet is a great resource' , '(\S*)' ) FROM dual; Result: 'TechOnTheNet' SELECT REGEXP_SUBSTR ( 'TechOnTheNet is a great resource' , '(\S*)(\s)' , 1, 2) FROM dual; Result: 'is ' SELECT REGEXP_SUBSTR ( '2, 5, and 10 are numbers in this example' , '\d' ) FROM dual; Result: 2 SELECT REGEXP_SUBSTR ( '2, 5, and 10 are numbers in this example' , '(\d)(\d)' ) FROM dual; Result: 10 SELECT REGEXP_SUBSTR ( 'Anderson' , 'a|e|i|o|u' , 1, 1, 'i' ) FROM dual; Result: 'A' |