xt_regexp Git
Brought to you by:
x-tender
File | Date | Author | Commit |
---|---|---|---|
Readme | 2010-10-31 |
![]() |
[fd3747] added Readme |
types.sql | 2010-11-02 |
![]() |
[1103ca] 1. varchar2_table.tps replaced with types.sql |
xt_regexp.jsp | 2010-10-31 |
![]() |
[3d01ab] Initial commit |
xt_regexp.pck | 2010-11-02 |
![]() |
[1103ca] 1. varchar2_table.tps replaced with types.sql |
== xt_regexp is the Oracle DB package for extended regular expressions and string functions == ---- == Function list: == {{{ function split_simple(p_str in varchar2,p_delim in varchar2) return varchar2_table pipelined; }}} Simple split string by delimiter as substring without regular expression. ---- {{{ function split(pStr varchar2,pDelimRegexp varchar2,pMaxCount number default 0) return varchar2_table; Function splits string by substrings matched for regular explression. }}} Example: {{{ select * from table( xt_regexp.split('Please, make me happy!','(?<=,)\s') ); }}} Another example: {{{ select * from table( xt_regexp.split('Please, make me happy!','\s',3) ); }}} ---- {{{ function matches(pStr varchar2,pPattern varchar2, pCANON_EQ number default 0, pCASE_INSENSITIVE number default 0, pCOMMENTS number default 0, pDOTALL number default 0, pMULTILINE number default 0, pUNICODE_CAS number default 0, pUNIX_LINES number default 0 ) return boolean; }}} Function return true, if input string matches regular explression. First parameter-string for testing, second - regular expression, others - modifiers for regular expression: * CANON_EQ - canonical equal; * CASE_INSENSITIVE - case insensitive; * COMMENTS - ignore comments starts with #; * DOTALL - dot symbol in regexp includes string delimiter(/n,/r/n) (default-not); * LITERAL - template is not regular expression; * MULTILINE - multiline mode; * UNICODE_CASE - case for unicode; * UNIX_LINES - string deliniter is /n ---- {{{ function get_matches( pStr varchar2, pPattern varchar2, pMaxCount number default 0, pCANON_EQ number default 0, pCASE_INSENSITIVE number default 0, pCOMMENTS number default 0, pDOTALL number default 0, pMULTILINE number default 0, pUNICODE_CAS number default 0, pUNIX_LINES number default 0) return varchar2_table; }}} Function returns collection of matched strings. Params like previous function, excepts pMaxCount - max count strings, if not set or equal 0 returns all. Example: {{{ select * from table( xt_regexp.get_matches('Please, make me happy!','\S*m\S*') ); }}} ---- {{{ function join_matches(pStr varchar2,pPattern varchar2,pDelim varchar2 default ';', pCANON_EQ number default 0, pCASE_INSENSITIVE number default 0, pCOMMENTS number default 0, pDOTALL number default 0, pMULTILINE number default 0, pUNICODE_CAS number default 0, pUNIX_LINES number default 0) return varchar2; }}} Function like get_matches, but returns joined collection with delimiter. ---- {{{ function replace_all(pStr varchar2,pPattern varchar2,pReplacement varchar2) return varchar2 }}} Function replaces matched substring with third param. Example - add "Scott!!!!" after comma with "Please": {{{ select xt_regexp.replace_all('Please, make me happy!','(?<=Please)(,)','$1 Scott!!!!') from dual; }}} Result: **Please, Scott!!!! make me happy!** ---- {{{ function replace_first(pStr varchar2,pPattern varchar2,pReplacement varchar2) return varchar2 }}} Function line previous but replaces just first occurence.