<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FRegular_Expressions_Functions%2FREGEXP_SUBSTR</id>
		<title>Oracle PL/SQL Tutorial/Regular Expressions Functions/REGEXP SUBSTR - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FRegular_Expressions_Functions%2FREGEXP_SUBSTR"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Regular_Expressions_Functions/REGEXP_SUBSTR&amp;action=history"/>
		<updated>2026-04-03T19:54:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Regular_Expressions_Functions/REGEXP_SUBSTR&amp;diff=4101&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Regular_Expressions_Functions/REGEXP_SUBSTR&amp;diff=4101&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Regular_Expressions_Functions/REGEXP_SUBSTR&amp;diff=4102&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Regular_Expressions_Functions/REGEXP_SUBSTR&amp;diff=4102&amp;oldid=prev"/>
				<updated>2010-05-26T10:08:38Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Backreference==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
The backslash may be followed by a number.&lt;br /&gt;
In the backreference version, &amp;quot;\1&amp;quot; says to match the same string as was matched by the nth subexpression.&lt;br /&gt;
As a first example, we can use the backreference in a manner similar to the repeat operator.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT REGEXP_SUBSTR(&amp;quot;Yababa dababa do&amp;quot;,&amp;quot;(ab)&amp;quot;)&lt;br /&gt;
  2  FROM dual;&lt;br /&gt;
RE&lt;br /&gt;
--&lt;br /&gt;
ab&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT REGEXP_SUBSTR(&amp;quot;Yababa dababa do&amp;quot;,&amp;quot;(ab)\1&amp;quot;)&lt;br /&gt;
  2  FROM dual;&lt;br /&gt;
REGE&lt;br /&gt;
----&lt;br /&gt;
abab&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT REGEXP_SUBSTR(&amp;quot;Yababa dababa do&amp;quot;,&amp;quot;(ab){2}&amp;quot;) from dual;&lt;br /&gt;
REGE&lt;br /&gt;
----&lt;br /&gt;
abab&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Grouping==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2    id           NUMBER(2),&lt;br /&gt;
  3    value        VARCHAR(50)&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(1,&amp;quot;1234 4th St. Vancouver&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(2,&amp;quot;4 Maple Ct. New York&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(3,&amp;quot;4321 Green Blvd. London&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(4,&amp;quot;33 Third St. Toronto&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(5,&amp;quot;One First Drive. Queen&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(6,&amp;quot;1664 1/2 Springhill Ave&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(7,&amp;quot;665 Fall Ave. Linken&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from mytable;&lt;br /&gt;
        ID VALUE&lt;br /&gt;
---------- --------------------------------------------------&lt;br /&gt;
         1 1234 4th St. Vancouver&lt;br /&gt;
         2 4 Maple Ct. New York&lt;br /&gt;
         3 4321 Green Blvd. London&lt;br /&gt;
         4 33 Third St. Toronto&lt;br /&gt;
         5 One First Drive. Queen&lt;br /&gt;
         6 1664 1/2 Springhill Ave&lt;br /&gt;
         7 665 Fall Ave. Linken&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT value, REGEXP_SUBSTR(value,&amp;quot;ird|irs&amp;quot;)&lt;br /&gt;
  2  FROM myTable;&lt;br /&gt;
VALUE                                              REGEXP_SUBSTR(VALUE,&amp;quot;IRD|IRS&amp;quot;)&lt;br /&gt;
-------------------------------------------------- -------------------------------------------------&lt;br /&gt;
-&lt;br /&gt;
1234 4th St. Vancouver&lt;br /&gt;
4 Maple Ct. New York&lt;br /&gt;
4321 Green Blvd. London&lt;br /&gt;
33 Third St. Toronto                               ird&lt;br /&gt;
One First Drive. Queen                             irs&lt;br /&gt;
1664 1/2 Springhill Ave&lt;br /&gt;
665 Fall Ave. Linken&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Group the letters &amp;quot;ir&amp;quot; together by putting them in parentheses and then parenthesizing the suffix using alternation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2    id           NUMBER(2),&lt;br /&gt;
  3    value        VARCHAR(50)&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(1,&amp;quot;1234 4th St. Vancouver&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(2,&amp;quot;4 Maple Ct. New York&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(3,&amp;quot;4321 Green Blvd. London&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(4,&amp;quot;33 Third St. Toronto&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(5,&amp;quot;One First Drive. Queen&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(6,&amp;quot;1664 1/2 Springhill Ave&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into myTable(id, value)values(7,&amp;quot;665 Fall Ave. Linken&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from mytable;&lt;br /&gt;
        ID VALUE&lt;br /&gt;
---------- --------------------------------------------------&lt;br /&gt;
         1 1234 4th St. Vancouver&lt;br /&gt;
         2 4 Maple Ct. New York&lt;br /&gt;
         3 4321 Green Blvd. London&lt;br /&gt;
         4 33 Third St. Toronto&lt;br /&gt;
         5 One First Drive. Queen&lt;br /&gt;
         6 1664 1/2 Springhill Ave&lt;br /&gt;
         7 665 Fall Ave. Linken&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT value, REGEXP_SUBSTR(value,&amp;quot;(ir)(d|s)&amp;quot;)&lt;br /&gt;
  2  FROM myTable;&lt;br /&gt;
VALUE                                              REGEXP_SUBSTR(VALUE,&amp;quot;(IR)(D|S)&amp;quot;)&lt;br /&gt;
-------------------------------------------------- -------------------------------------------------&lt;br /&gt;
-&lt;br /&gt;
1234 4th St. Vancouver&lt;br /&gt;
4 Maple Ct. New York&lt;br /&gt;
4321 Green Blvd. London&lt;br /&gt;
33 Third St. Toronto                               ird&lt;br /&gt;
One First Drive. Queen                             irs&lt;br /&gt;
1664 1/2 Springhill Ave&lt;br /&gt;
665 Fall Ave. Linken&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Regexp_Substr returns a string of data type VARCHAR2 or CLOB==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;REGEXP_SUBSTR uses regular expressions to specify the beginning and ending points of the returned string.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The simplest format for this function is:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;REGEXP_SUBSTR(source_string, pattern_to_find)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The general format for the REGEXP_SUBSTR function with all the options is:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;REGEXP_SUBSTR(source_string, pattern_to_find [, position,occurrence, match_parameter])&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT REGEXP_SUBSTR(&amp;quot;Mississippi&amp;quot;, &amp;quot;si&amp;quot;, 1, 2, &amp;quot;i&amp;quot;) FROM dual;&lt;br /&gt;
RE&lt;br /&gt;
--&lt;br /&gt;
si&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== REGEXP_SUBSTR(x, pattern [, start [, occurrence [, match_option]]]) gets a substring of x that matches pattern, which begins at the position specified by start.==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following example returns the substring that matches the regular expression l[[:alpha:]] {4} using REGEXP_SUBSTR():&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT REGEXP_SUBSTR(&amp;quot;abcedfghijklumnoprstuvwxyzabcedfghijklumnoprstuvwxyzabcedfghijklumnoprstuvwxyz&amp;quot;, &amp;quot;l[[:alpha:]]{4}&amp;quot;) AS result&lt;br /&gt;
  2  FROM dual;&lt;br /&gt;
RESUL&lt;br /&gt;
-----&lt;br /&gt;
lumno&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Search for (==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table history&lt;br /&gt;
  2  ( empno      NUMBER(4)&lt;br /&gt;
  3  , beginyear  NUMBER(4)&lt;br /&gt;
  4  , begindate  DATE&lt;br /&gt;
  5  , enddate    DATE&lt;br /&gt;
  6  , deptno     NUMBER(2)&lt;br /&gt;
  7  , msal       NUMBER(6,2)&lt;br /&gt;
  8  , comments   VARCHAR2(60)&lt;br /&gt;
  9  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into history values (9,2000,date &amp;quot;2000-01-01&amp;quot;,date &amp;quot;2002-01-02&amp;quot;,40, 950,&amp;quot;history for 9&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (8,2000,date &amp;quot;2000-01-02&amp;quot;, NULL       ,20, 800,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (7,1988,date &amp;quot;2000-01-06&amp;quot;,date &amp;quot;2002-01-07&amp;quot;,30,1000,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (6,1989,date &amp;quot;2000-01-07&amp;quot;,date &amp;quot;2002-01-12&amp;quot;,30,1300,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (5,1993,date &amp;quot;2000-01-12&amp;quot;,date &amp;quot;2002-01-10&amp;quot;,30,1500,&amp;quot;history for 5&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (4,1995,date &amp;quot;2000-01-10&amp;quot;,date &amp;quot;2002-01-11&amp;quot;,30,1700,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (3,1999,date &amp;quot;2000-01-11&amp;quot;, NULL       ,30,1600,&amp;quot;&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (2,1986,date &amp;quot;2000-01-10&amp;quot;,date &amp;quot;2002-01-08&amp;quot;,20,1000,&amp;quot;history for 2&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (1,1987,date &amp;quot;2000-01-08&amp;quot;,date &amp;quot;2002-01-01&amp;quot;,30,1000,&amp;quot;history for 1&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into history values (7,1989,date &amp;quot;2000-01-01&amp;quot;,date &amp;quot;2002-05-12&amp;quot;,30,1150,&amp;quot;history for 7&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select comments&lt;br /&gt;
  2  ,      regexp_substr(comments, &amp;quot;\([^\)]+\)&amp;quot;) as substring&lt;br /&gt;
  3  from   history&lt;br /&gt;
  4  where  comments like &amp;quot;%(%&amp;quot;;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table history;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>