مارا دنبال کنید : 

توضیحات

این تابع همانند تابع 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'