Product SiteDocumentation Site

5.4.16. The RegularExpression Class

This class provides support for regular expressions. A regular expression is a pattern you can use to match strings.

Note

The RegularExpression class is not a built-in class and is NOT preloaded. It is defined in the rxregexp.cls file. This means you must use a ::requires statement to activate its functionality, as follows:

::requires "rxregexp.cls"

Table 5.43. ooRexx RegularExpression Class

Object
RegularExpression
::require "rxregexp.cls"
init
match
parse
pos
position

Note

The RegularExpression class also has available class methods that its metaclass, the Class class (Section 5.1.2, “The Class Class”), defines.
Here is a description of the syntax:
|
OR operator between the left and right expression
?
Matches any single character
*
Matches the previous expression zero or more times
+
Matches the previous expression one or more times
\
"Escape" symbol: use the next character literally
()
Expression in parenthesis (use where needed)
{n}
Matches previous expression n times (n>1)
[]
Set definition: matches any single character out of the defined set.
A '^' right after the opening bracket means that none of the following characters should be matched.
A '-' (if not used with '\') defines a range between the last specified character and the one following '-'. If it is the first character in the set definition, it is used literally.
The following symbolic names (they must start and end with ':') can be used to abbreviate common sets:
:ALPHA:
Characters in the range A-Z and a-z
:LOWER:
Characters in the range a-z
:UPPER:
Characters in the range A-Z
:DIGIT:
Characters in the range 0-9
:ALNUM:
Characters in :DIGIT: and :ALPHA:
:XDIGIT:
Characters in :DIGIT:, A-F and a-f
:BLANK:
Space and tab characters
:SPACE:
Characters "09"x to "0D"x and space
:CNTRL:
Characters "00"x to "1F"x and "7F"x
:PRINT:
Characters in the range "20"x to "7E"x
:GRAPH:
Characters in :PRINT: without space
:PUNCT:
All :PRINT: characters without space and not in :ALNUM:

Example 5.194. Class REGULAREXPRESSION


::requires "rxregexp.cls"

     "(Hi|Hello) World"      Matches "Hi World" and
                             "Hello World".
     "file.???"              Matches any file with three
                             characters after "."
     "file.?{3}"             Same as above.
     "a *b"                  Matches all strings that begin with
                             "a" and end with "b" and have an
                             arbitrary number of spaces in between
                             both.
     "a +b"                  Same as above, but at least one space
                             must be present.
     "file.[bd]at"           Matches "file.bat" and "file.dat".
     "[A-Za-z]+"             Matches any string containing only
                             letters.
     "[:ALPHA:]+"            Same as above, using symbolic names.
     "[^0-9]*"               Matches any string containing no
                             numbers, including the empty string.
     "[:DIGIT::LOWER:]"      A single character, either a digit or
                             a lower case character.
     "This is (very )+nice." Matches all strings with one or more
                             occurrences of "very " between
                             "This is " and "nice.".


5.4.16.1. Inherited Methods

Methods inherited from the Object class (Section 5.1.1, “The Object Class”).
new (Class Method)initsend
= \= == \== <> ><instanceMethodsendWith
|| '' (abuttal)' ' (blank)instanceMethodssetMethod
(Operator Methods)isAstart
classisInstanceOfstartWith
copyobjectNamestring
defaultNameobjectName=unsetMethod
hasMethodrequest 
identityHashrun