Regular Expression Syntax

The following table shows basic regular expression syntax you can use when configuring Access Control and Post Transfer Actions:

Character

Meaning

.

Matches any single character.

[ ]

Indicates a character class. Matches any character inside the brackets (for example, [abc] matches "a", "b", and "c").

^

If this metacharacter occurs at the start of a character class, it negates the character class. A negated character class matches any character except those inside the brackets (for example, [^abc] matches all characters except "a", "b", and "c").

 

If ^ is at the beginning of the regular expression, it matches the beginning of the input (for example, ^[abc] will only match input that begins with "a", "b", or "c").

-

In a character class, indicates a range of characters (for example, [0-9] matches any of the digits "0" through "9").

?

Indicates that the preceding expression is optional: it matches once or not at all (for example, [0-9][0-9]? matches "2" and "12").

+

Indicates that the preceding expression matches one or more times (for example, [0-9]+ matches "1", "13", "456", and so on).

*

Indicates that the preceding expression matches zero or more times.

??, +?, *?

Non-greedy versions of ?, +, and *. These match as little as possible, unlike the greedy versions that match as much as possible (for example, given the input "<abc><def>", <.*?> matches "<abc>" while <.*> matches "<abc><def>").

( )

Grouping operator. Example: (\d+,)*\d+ matches a list of numbers separated by commas (for example, "1" or "1,23,456").

\

Escape character: interpret the next character literally (for example, [0-9]+ matches one or more digits, but [0-9]\+ matches a digit followed by a plus character). Also used for abbreviations (such as \a for any alphanumeric character; see the following table).

If \ is followed by a number n, it matches the nth match group (starting from 0). Example: <{.*?}>.*?</\0> matches "<head>Contents</head>".

$

At the end of a regular expression, this character matches the end of the input (for example,[0-9]$ matches a digit at the end of the input).

|

Alternation operator: separates two expressions, exactly one of which matches (for example, T|the matches "The" or "the").

!

Negation operator: the expression following ! does not match the input (for example, a!b matches "a" not followed by "b").

Additional Supported Characters

Refer to the following for additional information about regular expressions:

  • Post Transfer Action expressions support Perl syntax, which provides many additional options. For a complete reference, see http://www.boost.org/doc/libs/1_44_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html.

  • Access Control expressions use Basic Regular Expression (BRE) syntax. For these expressions, the following abbreviations are also supported.

    Abbreviation

    Matches

    \a

    Any alphanumeric character: ([a-zA-Z0-9])

    \b

    White space (blank): ([ \\t])

    \c

    Any alphabetic character: ([a-zA-Z])

    \d

    Any decimal digit: ([0-9])

    \h

    Any hexadecimal digit: ([0-9a-fA-F])

    \n

    Newline: (\r|(\r?\n))

    \q

    A quoted string: (\"[^\"]*\")|(\'[^\']*\')

    \w

    A simple word: ([a-zA-Z]+)

    \z

    An integer ([0-9]+)