The syntax for patterns used in these functions closely resembles
Perl. The expression should be enclosed in the delimiters, a
forward slash (/), for example. Any character can be used for
delimiter as long as it's not alphanumeric or backslash (\). If
the delimiter character has to be used in the expression itself,
it needs to be escaped by backslash. Since PHP 4.0.4, you can also use
Perl-style (), {}, [], and <> matching delimiters.
See Pattern Syntax
for detailed explanation.
The ending delimiter may be followed by various modifiers that
affect the matching.
See Pattern
Modifiers.
Regular expression support is provided by the PCRE library
package, which is open source software, written by Philip Hazel,
and copyright by the University of Cambridge, England. It is
available at ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
Beginning with PHP 4.2.0 these functions are enabled by default. You can
disable the pcre functions with
--without-pcre-regex. Use
--with-pcre-regex=DIR to specify DIR
where PCRE's include and library files are located, if not using bundled library.
For older versions you have to configure and compile PHP
with --with-pcre-regex[=DIR] in order
to use these functions.
The windows version of PHP has built in
support for this extension. You do not need to load any additional
extension in order to use these functions.
The constants below are defined by this extension, and
will only be available when the extension has either
been compiled into PHP or dynamically loaded at runtime.
Table 1. PREG constants
constant
description
PREG_PATTERN_ORDER
Orders results so that $matches[0] is an array of full pattern
matches, $matches[1] is an array of strings matched by the first
parenthesized subpattern, and so on. This flag is only used with
preg_match_all().
PREG_SET_ORDER
Orders results so that $matches[0] is an array of first set of
matches, $matches[1] is an array of second set of matches, and so
on. This flag is only used with preg_match_all().
PREG_OFFSET_CAPTURE
See the description of
PREG_SPLIT_OFFSET_CAPTURE. This flag is
available since PHP 4.3.0.
PREG_SPLIT_NO_EMPTY
This flag tells preg_split() to return only non-empty
pieces.
PREG_SPLIT_DELIM_CAPTURE
This flag tells preg_split() to capture
parenthesized expression in the delimiter pattern as well. This flag
is available since PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE
If this flag is set, for every occurring match the appendant string
offset will also be returned. Note that this changes the return
values in an array where every element is an array consisting of the
matched string at offset 0 and its string offset within subject at
offset 1. This flag is available since PHP 4.3.0
and is only used for preg_split().