Regular Expression Syntax |
|
Special characters and sequences are used in writing patterns for regular expressions. The following table describes these characters and includes short examples showing how the characters are used.
Character |
Description |
\ |
Marks the next character as special. /n/ matches the character "n". The sequence /\n/ matches a linefeed or newline character. |
^ |
Matches the beginning of input or line. |
$ |
Matches the end of input or line. |
* |
Matches the preceding character zero or more times. /zo*/ matches either "z" or "zoo." |
+ |
Matches the preceding character one or more times. /zo+/ matches "zoo" but not "z." |
? |
Matches the preceding character zero or one time. /a?ve?/ matches the "ve" in "never." |
. |
Matches any single character except a newline character. |
( pattern) |
Matches pattern and remembers the match. The matched substring can be retrieved from the %0-%9 variables. To match parentheses characters ( ), use "\(" or "\)". |
x |y |
Matches either x or y. /z|food?/ matches "zoo" or "food." |
{ n} |
n is a nonnegative integer. Matches exactly n times. /o{2}/ does not match the "o" in "Bob," but matches the first two o's in "foooood." |
{ n,} |
n is a nonnegative integer. Matches at least n times. /o{2,}/ does not match the "o" in "Bob" and matches all the o's in "foooood." /o{1,}/ is equivalent to /o+/. |
{ n,m} |
m and n are nonnegative integers. Matches at least n and at most m times. /o{1,3}/ matches the first three o's in "fooooood." |
[ xyz] |
A character set. Matches any one of the enclosed characters. /[abc]/ matches the "a" in "plain." |
[^ xyz] |
A negative character set. Matches any character not enclosed. /[^abc]/ matches the "p" in "plain." |
\b |
Matches a word boundary, such as a space. /ea*r\b/ matches the "er" in "never early." |
\B |
Matches a nonword boundary. /ea*r\B/ matches the "ear" in "never early." |
\d |
Matches a digit character. Equivalent to [0-9]. |
\D |
Matches a nondigit character. Equivalent to [^0-9]. |
\f |
Matches a form-feed character. |
\n |
Matches a linefeed character. |
\r |
Matches a carriage return character. |
\s |
Matches any white space including space, tab, form-feed, and so on. Equivalent to [ \f\n\r\t\v] |
\S |
Matches any nonwhite space character. Equivalent to [^ \f\n\r\t\v] |
\t |
Matches a tab character. |
\v |
Matches a vertical tab character. |
\w |
Matches any word character including underscore. Equivalent to [A-Za-z0-9_]. |
\W |
Matches any nonword character. Equivalent to [^A-Za-z0-9_]. |
/ n/ |
Matches n, where n is an octal, hexadecimal, or decimal escape value. Allows embedding of ASCII codes into regular expressions. |
Samples:
/^You (massacres|hits|bruises|slashes|blugeons) (.+) (very hard|hard|extremly hard)*( with your slash)*/
Its matches lines like: «You massacres dragon with your slash» «You blugeons dragon very hard» «You blugeons dragon hard» etc.
%0 variables will be filled by the part of string matched by (.+), %1 variable will be filled by potion of string matched by (very hard|hard|extremly hard) etc.
/^\s+(\w+)\s+([\w\.]+)\s+\w+\s+\w+\s+[NY]\s+[NY]\s+[NY]\s+\d+\s+\d+.*/
This expressions is used to match group members status:
Your group of 2 members consists of:
Member Hits Move Position Fly Inv Water Light Mem
------------------------------------------------------------------------
Shesh fair rested standing N N N 0 0
Jaba perfect rested standing Y Y N 1 0