توضیحات

این تابع همانند تابع SUBSTR است و این امکان را می‌دهد تا قسمتی از رشته را با توجه به الگوی مورد نظر جدا کنیم.

دستور

تابع REGEXP_SUBSTR به صورت زیر نوشته می‌شود:

REGEXP_SUBSTR( string, pattern [, start_position [, nth_appearance [, match_parameter [, sub_expression ] ] ] ] )

.
PATTERN: الگویی را برای تطبیق دادن ارائه می‌دهد.

start_position: گزینه‌ای اختیاری است، نشان دهنده جایی است که جست‌وجو از آن‌جا آغاز می‌شود.
nth_appearance: گزینه‌ای اختیاری است، نشان دهنده این است که خروجی چندمین تکرار الگو باشد.
match_parameter: گزینه‌ای اختیاری است، امکان تغییر رفتار تابع را می‌دهد.

Subexpression: گزینه‌ای اختیاری است، زمانی به کار می‌رود که الگو یک زیرجمله دارد و می‌خواهیم مشخص کنیم کدام زیرجمله مدنظرمان است.

 


مثال

مثالی از خروجی تابع REGEXP_SUBSTR را مشاهده می‌کنیم:

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'