Menu

Tree [1103ca] master /
 History

HTTPS access


File Date Author Commit
 Readme 2010-10-31 xtender xtender [fd3747] added Readme
 types.sql 2010-11-02 xtender xtender [1103ca] 1. varchar2_table.tps replaced with types.sql
 xt_regexp.jsp 2010-10-31 xtender xtender [3d01ab] Initial commit
 xt_regexp.pck 2010-11-02 xtender xtender [1103ca] 1. varchar2_table.tps replaced with types.sql

Read Me

== 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.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.