توضیحات
این تابع همانند تابع 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: 2SELECT REGEXP_SUBSTR ('2, 5, and 10 are numbers in this example', '(\d)(\d)')FROM dual;Result: 10SELECT REGEXP_SUBSTR ('Anderson', 'a|e|i|o|u', 1, 1, 'i')FROM dual;Result: 'A' |