Locate and LocateUp (Regex function): Difference between revisions
m (Alex moved page Locate (Regex function) to Locate and LocateUp (Regex function)) |
No edit summary |
||
Line 1: | Line 1: | ||
{{Template:Regex:Locate subtitle}} | {{Template:Regex:Locate subtitle}} | ||
These functions search a [Stringlist_class|Stringlist] for an item that matches the regular expression in the <var>Regex</var> object. <var>Locate</var> searches forward (low to high item number) in the <var>Stringlist</var> while <var>LocateUp</var> searches backward. | |||
==Syntax== | ==Syntax== | ||
{{Template:Regex:Locate syntax}} | {{Template:Regex:Locate syntax}} | ||
{{Template:Regex:LocateUp syntax}} | |||
===Syntax terms=== | ===Syntax terms=== | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>%itemNum</th><td>number</td></tr> | <tr><th>%itemNum</th><td>The first matching item number. If no items match, 0 (zero) is returned.</td></tr> | ||
<tr><th>regex</th> | <tr><th>regex</th> | ||
<td><var>Regex</var> object</td></tr> | <td>The <var>Regex</var> object</td></tr> | ||
<tr><th>stringlist</th> | <tr><th>stringlist</th> | ||
<td><var>Stringlist</var> | <td>The <var>Stringlist</var> to be searched</td></tr> | ||
<tr><th>startItem</th> | <tr><th>startItem</th> | ||
<td>number< | <td>The item number at which to start searching. If 0 (the default), searching begins from the first item for <var>Locate</var> and the last item for <var>LocateUp</var>. Otherwise, <var>startItem</var> must be a number from 1 to the number of items in the <var>Stringlist</var>, inclusive.</td></tr> | ||
<tr><th><var>StartCol</var></th> | <tr><th><var>StartCol</var></th> | ||
<td>number<br/>The default value | <td>number<br/>The first column to include in the attempted match. The default value is 1.</td></tr> | ||
<tr><th><var>EndCol</var></th> | <tr><th><var>EndCol</var></th> | ||
<td>number<br/>The default value of | <td>number<br/>The last column to include in the attempted match. The default value is effectively the value of the [MaxItemLength (Stringlist property)|Stringlist MaxItemLength property].</td></tr> | ||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
<ul> | |||
<li>These functions have identical functionality to the ][RegexLocate and RegexLocateUp (Stringlist functions)|Stringlist RegexLocate and RegexLocateUp]] functions.</li> | |||
<li>Invalid values for parameters (such as start column greater than end column) result in request cancellation.</li> | |||
</ul> | |||
==Examples== | ==Examples== | ||
The following example removes all items that match regular expression <code>"(foo|fu)bar"</code> (case insensitive) from a <var>Stringlist</var>: | |||
<p class="code">%num is float | |||
%regex is object regex | |||
%sl is object stringlist | |||
... | |||
%regex = new("(fu|foo)bar", options="i") | |||
%num = 1 | |||
repeat while %num le %sl:count | |||
%num = %regex:locate(%sl, %num) | |||
if %num eq 0 then loop end; end if | |||
%sl:removeItem(%num) | |||
end repeat | |||
</p> | |||
==See also== | ==See also== | ||
{{Template:Regex:Locate footer}} | {{Template:Regex:Locate footer}} | ||
[[Category:Regular expression processing]] |
Revision as of 02:00, 14 March 2022
Find next item in Stringlist that matches a regex (Regex class)
These functions search a [Stringlist_class|Stringlist] for an item that matches the regular expression in the Regex object. Locate searches forward (low to high item number) in the Stringlist while LocateUp searches backward.
Syntax
[%itemNum =] regex:Locate( sl, [startItem], [StartCol= number], - [EndCol= number])
[%itemNum =] regex:LocateUp( sl, [startItem], [StartCol= number], - [EndCol= number])
Syntax terms
%itemNum | The first matching item number. If no items match, 0 (zero) is returned. |
---|---|
regex | The Regex object |
stringlist | The Stringlist to be searched |
startItem | The item number at which to start searching. If 0 (the default), searching begins from the first item for Locate and the last item for LocateUp. Otherwise, startItem must be a number from 1 to the number of items in the Stringlist, inclusive. |
StartCol | number The first column to include in the attempted match. The default value is 1. |
EndCol | number The last column to include in the attempted match. The default value is effectively the value of the [MaxItemLength (Stringlist property)|Stringlist MaxItemLength property]. |
Usage notes
- These functions have identical functionality to the ][RegexLocate and RegexLocateUp (Stringlist functions)|Stringlist RegexLocate and RegexLocateUp]] functions.
- Invalid values for parameters (such as start column greater than end column) result in request cancellation.
Examples
The following example removes all items that match regular expression "(foo|fu)bar"
(case insensitive) from a Stringlist:
%num is float %regex is object regex %sl is object stringlist ... %regex = new("(fu|foo)bar", options="i") %num = 1 repeat while %num le %sl:count %num = %regex:locate(%sl, %num) if %num eq 0 then loop end; end if %sl:removeItem(%num) end repeat