Regular Expression Syntax

 


Description
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