Friday, June 5, 2009

düzenli İfadeler REGULAR EXPRESSIONS

Oracle 10g ile birlikte gelen düzenli ifade fonksiyonları aşağidadir.
veritabanınızın versiyonunu öğrenmek için
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
benim kullandığım sürümde ortaya çıkmış oldu :)
• REGEXP_LIKE
• REGEXP_INSTR
• REGEXP_SUBSTR
• REGEXP_REPLACE
Bunları burada açıklamaya gerek Yiğit GENÇ ve Oğuzhan ÇELİK çok güzel bir anlatim yapmışlar burada
digerleri de
http://www.oracle-developer.net/display.php?id=302
ve http://www.psoug.org/reference/regexp.html
http://www.java2s.com/Tutorial/Oracle/0360__Regular-Expressions-Functions/Catalog0360__Regular-Expressions-Functions.htm

Yaptiğim basit denemeler
SQL> select regexp_substr('deneme12312','[[:digit:]]')from dual;
R
-
1
SQL> select regexp_substr('deneme12312','[[:digit:]]+')from dual;
REGEX
-----
12312
SQL> select regexp_substr('deneme912312','[[:digit:]]+')from dual;
Buradaki "+" bütün rakamlari getiriyor bize fakat buradaki örnekte rakamlardan sonra harf ve takrar rakam gelirse
onları göstermez. demek istdiğim 'deneme91231212denedim88888' yaptığımızda 88888le gelmeyecektir ekrana.
REGEXP
------
912312
SQL> select regexp_substr('deneme912312','[[:digit:]]')from dual;
R
-
9
////////////////////////////////////////////////////////////////////////////
REGEXP_SUBSTR(value,'ird|irs')
REGEXP_SUBSTR(value,'(ir)(d|s)')
////////////////////////////////////////////////////////////////////////////

No comments: