PHP 手冊
前一頁 |  | 下一頁

# XCVI. Regular Expression Functions (Perl-Compatible)

# 介紹

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.

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

警告
You should be aware of some limitations of PCRE. Read http://www.pcre.org/pcre.txt for more info.

# 需求

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.

Windows 版本的 PHP 已內建此延伸的支援﹐所以你毋須再載入附加的延伸來使用這些功能。

# 執行時期組態

`php.ini`中沒有定義此延伸的組態指令。

# 資源類型

這個延伸沒有定義任何資源。

# 預先定義常數

以下的常數由此延伸定義，只在這個延伸被編譯成PHP或實行時期被動態載入時有效。

表格 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().

# 範例

範例 1. Examples of valid patterns

- /<\/\w+>/

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

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

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

範例 2. Examples of invalid patterns

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

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

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

前一頁 | 內容 | 下一頁
pcntl_wtermsig | 上一層 | Pattern Modifiers