This is the first time I have tried to use rxregexp, and I'm obviously 
misunderstanding something.
Here's the pertinent bit of code I've written:

| say '-' ~ copies(80)
| say "partLine["L"] = '"partLine[L] ~ left(60)"...'"
| say " pattern["1"] = '"pattern[1]"'"
| call trace ?i
|     if regexp ~ parse(pattern[1]) = 0 then
|       if regexp ~ match(partLine[L]) then
|         do
|           starts =      pos(partLine[L])
|             ends = position(partLine[L])
|
|           if starts+ends > 0 then
|             partLine[L] = partLine[L] ~ 
replaceAt(replacement[1],starts,ends-starts+1)
|         end
| call trace n

and trace output from a few lines of input:

| 
--------------------------------------------------------------------------------
| partLine[L] = '<a id="p0" name="p0"></a><p onmouseover="PNo(0)">&nbsp;</p> 
...'
|  pattern[1] = '<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">'
|        >>>         "?N"
|
|    197 *-*       if regexp ~ parse(pattern[1]) = 0
|        >V>         REGEXP => "a RegularExpression"
|        >V>         PATTERN => "an Array"
|        >L>         "1"
|        >A>         "1"
|        >M>         "[]" => "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >A>         "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >M>         "PARSE" => "0"
|        >L>         "0"
|        >O>         "=" => "1"
|        >>>         "1"
|
|    197 *-*         then
|    198 *-*           if regexp ~ match(partLine[L])
|        >V>             REGEXP => "a RegularExpression"
|        >V>             PARTLINE => "an Array"
|        >V>             L => "3"
|        >A>             "3"
|        >M>             "[]" => "<a id="p0" name="p0"></a><p 
onmouseover="PNo(0)">&nbsp;</p>"
|        >A>             "<a id="p0" name="p0"></a><p 
onmouseover="PNo(0)">&nbsp;</p>"
|        >M>             "MATCH" => "0"
|        >>>             "0"
|
|    206 *-*       call trace n
|        >V>         N => "N"
|        >A>         "N"
| 
--------------------------------------------------------------------------------
| partLine[L] = '<a id="p1" name="p1"></a><p onmouseover="PNo(1)">The 
ticking...'
|  pattern[1] = '<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">'
|        >>>         "?N"
|
|    197 *-*       if regexp ~ parse(pattern[1]) = 0
|        >V>         REGEXP => "a RegularExpression"
|        >V>         PATTERN => "an Array"
|        >L>         "1"
|        >A>         "1"
|        >M>         "[]" => "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >A>         "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >M>         "PARSE" => "0"
|        >L>         "0"
|        >O>         "=" => "1"
|        >>>         "1"
|
|    197 *-*         then
|    198 *-*           if regexp ~ match(partLine[L])
|        >V>             REGEXP => "a RegularExpression"
|        >V>             PARTLINE => "an Array"
|        >V>             L => "4"
|        >A>             "4"
|        >M>             "[]" => "<a id="p1" name="p1"></a><p 
onmouseover="PNo(1)">The ticking ...
| | 
--------------------------------------------------------------------------------
| partLine[3] = '<a id="p0" name="p0"></a><p onmouseover="PNo(0)">&nbsp;</p> 
...'
|  pattern[1] = '<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">'
|        >>>         "?N"
|
|    197 *-*       if regexp ~ parse(pattern[1]) = 0
|        >V>         REGEXP => "a RegularExpression"
|        >V>         PATTERN => "an Array"
|        >L>         "1"
|        >A>         "1"
|        >M>         "[]" => "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >A>         "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >M>         "PARSE" => "0"
|        >L>         "0"
|        >O>         "=" => "1"
|        >>>         "1"
|
|    197 *-*         then
|    198 *-*           if regexp ~ match(partLine[L])
|        >V>             REGEXP => "a RegularExpression"
|        >V>             PARTLINE => "an Array"
|        >V>             L => "3"
|        >A>             "3"
|        >M>             "[]" => "<a id="p0" name="p0"></a><p 
onmouseover="PNo(0)">&nbsp;</p>"
|        >A>             "<a id="p0" name="p0"></a><p 
onmouseover="PNo(0)">&nbsp;</p>"
|        >M>             "MATCH" => "0"
|        >>>             "0"
|
|    206 *-*       call trace n
|        >V>         N => "N"
|        >A>         "N"
| 
--------------------------------------------------------------------------------
| partLine[4] = '<a id="p1" name="p1"></a><p onmouseover="PNo(1)">The 
ticking...'
|  pattern[1] = '<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">'
|        >>>         "?N"
|
|    197 *-*       if regexp ~ parse(pattern[1]) = 0
|        >V>         REGEXP => "a RegularExpression"
|        >V>         PATTERN => "an Array"
|        >L>         "1"
|        >A>         "1"
|        >M>         "[]" => "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >A>         "<a id="p[0-9]+" name="p[0-9]+"></a><p 
onmouseover="PNo\([0-9]+\)">"
|        >M>         "PARSE" => "0"
|        >L>         "0"
|        >O>         "=" => "1"
|        >>>         "1"
|
|    197 *-*         then
|    198 *-*           if regexp ~ match(partLine[L])
|        >V>             REGEXP => "a RegularExpression"
|        >V>             PARTLINE => "an Array"
|        >V>             L => "4"
|        >A>             "4"
|        >M>             "[]" => "<a id="p1" name="p1"></a><p 
onmouseover="PNo(1)">The ticking...
|        >A>             "<a id="p1" name="p1"></a><p onmouseover="PNo(1)">The 
ticking...
|        >M>             "MATCH" => "0"
|        >>>             "0"
|
|    206 *-*       call trace n
|        >V>         N => "N"
|        >A>         "N"

        If I'm reading the descriptions of the .RegularExpression methods right 
these should
work, but since they don't, where am I going wrong?

Leslie
--
Platform: Linux
Distribution: openSUSE Leap 15.6 - x86_64
Open Object Rexx Version 5.0.0 r12583
Build date: Dec 23 2022
Addressing mode: 64


_______________________________________________
Oorexx-users mailing list
Oorexx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to