PHP Handbuch
Zurück |  | Nach vorne

# LXXXVIII. Regular Expression Functions (Perl-Compatible)

# Einführung

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.

The ending delimiter may be followed by various modifiers that affect the matching. See Pattern Modifiers.

PHP also supports regular expressions using a POSIX-extended syntax using the POSIX-extended regex functions..

# Anforderungen

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/.

# Installation

Beginning with PHP 4.2.0 this function are enabled by default. For older versions you have to configure and compile PHP with `--with-pcre-regex[=DIR]` in order to use these functions. You can disable the pcre functions with `--without-pcre-regex`.

# Laufzeit Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der `php.ini`.

# Resource Typen

Diese Erweiterung definiert keine Resource-Typen.

# Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Tabelle 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 only 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 occuring match the appendant string offset will also be returned. Note that this changes the return value in an array where very element is an array consisting of the matched string at offset 0 and it's string offset into subject at offset 1. This flag is available since `PHP` 4.3.0 and is only used for preg_split().

# Beispiele

Beispiel 1. Examples of valid patterns

- `/<\/\w+>/`

- `|(\d{3})-\d+|Sm`

- `/^(?i)php[34]/`

- `{^\s+(\s+)?$}`

Beispiel 2. Examples of invalid patterns

- `/href='(.*)'` - missing ending delimiter

- `/\w+\s*\w+/J` - unknown modifier 'J'

- `1-\d3-\d3-\d4|` - missing starting delimiter

Zurück | Zum Anfang | Nach vorne
recode | Nach oben | Pattern Modifiers