<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=ScriptCore3.RegExprSubExpressions</id>
		<title>ScriptCore3.RegExprSubExpressions - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=ScriptCore3.RegExprSubExpressions"/>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=ScriptCore3.RegExprSubExpressions&amp;action=history"/>
		<updated>2026-05-26T01:26:20Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=ScriptCore3.RegExprSubExpressions&amp;diff=1220&amp;oldid=prev</id>
		<title>Mighty: new page</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=ScriptCore3.RegExprSubExpressions&amp;diff=1220&amp;oldid=prev"/>
				<updated>2013-08-25T20:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;new page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; '''function RegExprSubExpressions(const ARegExpr: string; ASubExprs: [[TStrings]]; AExtendedSyntax: boolean): integer'''&lt;br /&gt;
  ARegExpr: Regular expression to be analysed&lt;br /&gt;
  ASubExprs: list of subexpressions found in ''ARegExpr''&lt;br /&gt;
  AExtendedSyntax: must be ''True'' if modifier /m will be On while using the r.e.&lt;br /&gt;
  Result: used to indicate if there are missing brackets in ''ARegExpr''&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Makes list of subexpressions found in ''ARegExpr'' r.e.&amp;lt;br&amp;gt;&lt;br /&gt;
* If ''Result'' &amp;lt;&amp;gt; 0, then ''ASubExpr'' can contain empty items or illegal ones&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ''n'' Value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| Success. No unbalanced brackets was found&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
| There are not enough closing brackets ')'&lt;br /&gt;
|-&lt;br /&gt;
| -(n+1)&lt;br /&gt;
| At position ''n'' was found opening '[' without corresponding closing ']';&lt;br /&gt;
|-&lt;br /&gt;
| n&lt;br /&gt;
| At position n was found closing bracket ')' without corresponding opening '('.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For detailed information about Regular Expressions see [http://en.wikipedia.org/wiki/Regular_expression Regular_Expression on Wikipedia]&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
([A-Z]* [a-z]*) (ab[c]{1,2})*&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Result = 0&lt;br /&gt;
ASubExprs:&lt;br /&gt;
  ([A-Z]* [a-z]*) (ab[c]{1,2})*&lt;br /&gt;
  [A-Z]* [a-z]*&lt;br /&gt;
  ab[c]{1,2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Testing script==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
    reg: string;&lt;br /&gt;
    str: TStringList;&lt;br /&gt;
&lt;br /&gt;
procedure TestInit(newReg: string);&lt;br /&gt;
begin&lt;br /&gt;
    reg := newReg;&lt;br /&gt;
    str := File.CreateStringList;&lt;br /&gt;
    WriteLn('-- RegExprSubExpressions Test Start --');&lt;br /&gt;
    WriteLn('');&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TestEnd();&lt;br /&gt;
begin&lt;br /&gt;
    WriteLn('-- RegExprSubExpressions Test Stop --');&lt;br /&gt;
    str.Free;&lt;br /&gt;
end;&lt;br /&gt;
    &lt;br /&gt;
procedure RegExprChanged(AShowErrorPos: boolean);&lt;br /&gt;
var&lt;br /&gt;
    i : integer;&lt;br /&gt;
    n : integer;&lt;br /&gt;
    s : string;&lt;br /&gt;
begin&lt;br /&gt;
    n := RegExprSubExpressions(reg,str,False);&lt;br /&gt;
    case n of //###0.942&lt;br /&gt;
        0: WriteLn('No errors');&lt;br /&gt;
        -1: WriteLn('Not enough &amp;quot;)&amp;quot;');&lt;br /&gt;
        else &lt;br /&gt;
        begin&lt;br /&gt;
            if n &amp;lt; 0 then&lt;br /&gt;
            begin&lt;br /&gt;
                s := 'No &amp;quot;]&amp;quot; found for &amp;quot;[&amp;quot;';&lt;br /&gt;
                n := (-n) - 1;&lt;br /&gt;
            end&lt;br /&gt;
            else &lt;br /&gt;
                s := 'Unexpected &amp;quot;)&amp;quot;';&lt;br /&gt;
            if AShowErrorPos then &lt;br /&gt;
                s := s + ' at pos ' + IntToStr(n);&lt;br /&gt;
            WriteLn(s);&lt;br /&gt;
        end;&lt;br /&gt;
    end;&lt;br /&gt;
    with str do&lt;br /&gt;
        for i:=0 to Count-1 do&lt;br /&gt;
            Strings[i] := '$' + IntToStr(i) + ': ' + Strings[i];&lt;br /&gt;
    WriteLn(str.Text);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
    TestInit('([A-Z]* [a-z]*) (ab[c]{1,2})*');&lt;br /&gt;
    RegExprChanged(TRUE);&lt;br /&gt;
    TestEnd();&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Functions]]&lt;/div&gt;</summary>
		<author><name>Mighty</name></author>	</entry>

	</feed>