mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00
ws
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@168599 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
2cc0656210
commit
e2b104f082
1 changed files with 184 additions and 184 deletions
|
@ -1,191 +1,191 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<!-- $Revision: 1.5 $ -->
|
||||
<!-- splitted from ./en/functions/pcre.xml, last change in rev 1.2 -->
|
||||
<refentry id="reference.pcre.pattern.modifiers">
|
||||
<refnamediv>
|
||||
<refname>Pattern Modifiers</refname>
|
||||
<refpurpose>Describes possible modifiers in regex
|
||||
patterns</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
The current possible PCRE modifiers are listed below. The names
|
||||
in parentheses refer to internal PCRE names for these modifiers.
|
||||
</para>
|
||||
<para>
|
||||
<blockquote>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><emphasis>i</emphasis> (PCRE_CASELESS)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, letters in the pattern match both
|
||||
upper and lower case letters.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>m</emphasis> (PCRE_MULTILINE)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
By default, PCRE treats the subject string as consisting of a
|
||||
single "line" of characters (even if it actually contains
|
||||
several newlines). The "start of line" metacharacter (^)
|
||||
matches only at the start of the string, while the "end of
|
||||
line" metacharacter ($) matches only at the end of the
|
||||
string, or before a terminating newline (unless
|
||||
<emphasis>D</emphasis> modifier is set). This is the same as
|
||||
Perl.
|
||||
</simpara>
|
||||
<simpara>
|
||||
When this modifier is set, the "start of line" and "end of
|
||||
line" constructs match immediately following or immediately
|
||||
before any newline in the subject string, respectively, as
|
||||
well as at the very start and end. This is equivalent to
|
||||
Perl's /m modifier. If there are no "\n" characters in a
|
||||
subject string, or no occurrences of ^ or $ in a pattern,
|
||||
setting this modifier has no effect.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>s</emphasis> (PCRE_DOTALL)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, a dot metacharacter in the pattern
|
||||
matches all characters, including newlines. Without it,
|
||||
newlines are excluded. This modifier is equivalent to Perl's
|
||||
/s modifier. A negative class such as [^a] always matches a
|
||||
newline character, independent of the setting of this
|
||||
modifier.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>x</emphasis> (PCRE_EXTENDED)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, whitespace data characters in the
|
||||
pattern are totally ignored except when escaped or inside a
|
||||
character class, and characters between an unescaped #
|
||||
outside a character class and the next newline character,
|
||||
inclusive, are also ignored. This is equivalent to Perl's /x
|
||||
modifier, and makes it possible to include comments inside
|
||||
complicated patterns. Note, however, that this applies only
|
||||
to data characters. Whitespace characters may never appear
|
||||
within special character sequences in a pattern, for example
|
||||
within the sequence (?( which introduces a conditional
|
||||
subpattern.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>e</emphasis></term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, <function>preg_replace</function>
|
||||
does normal substitution of backreferences in the
|
||||
replacement string, evaluates it as PHP code, and uses the
|
||||
result for replacing the search string.
|
||||
Single and double quotes are escaped by backslashes in substituted
|
||||
backreferences.
|
||||
</simpara>
|
||||
<para>
|
||||
Only <function>preg_replace</function> uses this modifier;
|
||||
it is ignored by other PCRE functions.
|
||||
<note>
|
||||
<refentry id="reference.pcre.pattern.modifiers">
|
||||
<refnamediv>
|
||||
<refname>Pattern Modifiers</refname>
|
||||
<refpurpose>Describes possible modifiers in regex
|
||||
patterns</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
The current possible PCRE modifiers are listed below. The names
|
||||
in parentheses refer to internal PCRE names for these modifiers.
|
||||
</para>
|
||||
<para>
|
||||
<blockquote>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><emphasis>i</emphasis> (PCRE_CASELESS)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier was not available in PHP 3.
|
||||
If this modifier is set, letters in the pattern match both
|
||||
upper and lower case letters.
|
||||
</simpara>
|
||||
</note>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>A</emphasis> (PCRE_ANCHORED)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, the pattern is forced to be
|
||||
"anchored", that is, it is constrained to match only at the
|
||||
start of the string which is being searched (the "subject
|
||||
string"). This effect can also be achieved by appropriate
|
||||
constructs in the pattern itself, which is the only way to
|
||||
do it in Perl.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>D</emphasis> (PCRE_DOLLAR_ENDONLY)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, a dollar metacharacter in the pattern
|
||||
matches only at the end of the subject string. Without this
|
||||
modifier, a dollar also matches immediately before the final
|
||||
character if it is a newline (but not before any other
|
||||
newlines). This modifier is ignored if <emphasis>m</emphasis>
|
||||
modifier is set. There is no equivalent to this modifier in
|
||||
Perl.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>S</emphasis></term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
When a pattern is going to be used several times, it is
|
||||
worth spending more time analyzing it in order to speed up
|
||||
the time taken for matching. If this modifier is set, then
|
||||
this extra analysis is performed. At present, studying a
|
||||
pattern is useful only for non-anchored patterns that do not
|
||||
have a single fixed starting character.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>U</emphasis> (PCRE_UNGREEDY)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier inverts the "greediness" of the quantifiers so
|
||||
that they are not greedy by default, but become greedy if
|
||||
followed by "?". It is not compatible with Perl. It can also
|
||||
be set by a (?U)
|
||||
<link linkend="regexp.reference.internal-options">modifier setting within
|
||||
the pattern</link> or
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>X</emphasis> (PCRE_EXTRA)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier turns on additional functionality of PCRE that
|
||||
is incompatible with Perl. Any backslash in a pattern that
|
||||
is followed by a letter that has no special meaning causes
|
||||
an error, thus reserving these combinations for future
|
||||
expansion. By default, as in Perl, a backslash followed by a
|
||||
letter with no special meaning is treated as a literal.
|
||||
There are at present no other features controlled by this
|
||||
modifier.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>u</emphasis> (PCRE_UTF8)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier turns on additional functionality of PCRE that
|
||||
is incompatible with Perl. Pattern strings are treated as
|
||||
UTF-8. This modifier is available from PHP 4.1.0 or greater
|
||||
on Unix and from PHP 4.2.3 on win32.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</blockquote>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>m</emphasis> (PCRE_MULTILINE)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
By default, PCRE treats the subject string as consisting of a
|
||||
single "line" of characters (even if it actually contains
|
||||
several newlines). The "start of line" metacharacter (^)
|
||||
matches only at the start of the string, while the "end of
|
||||
line" metacharacter ($) matches only at the end of the
|
||||
string, or before a terminating newline (unless
|
||||
<emphasis>D</emphasis> modifier is set). This is the same as
|
||||
Perl.
|
||||
</simpara>
|
||||
<simpara>
|
||||
When this modifier is set, the "start of line" and "end of
|
||||
line" constructs match immediately following or immediately
|
||||
before any newline in the subject string, respectively, as
|
||||
well as at the very start and end. This is equivalent to
|
||||
Perl's /m modifier. If there are no "\n" characters in a
|
||||
subject string, or no occurrences of ^ or $ in a pattern,
|
||||
setting this modifier has no effect.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>s</emphasis> (PCRE_DOTALL)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, a dot metacharacter in the pattern
|
||||
matches all characters, including newlines. Without it,
|
||||
newlines are excluded. This modifier is equivalent to Perl's
|
||||
/s modifier. A negative class such as [^a] always matches a
|
||||
newline character, independent of the setting of this
|
||||
modifier.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>x</emphasis> (PCRE_EXTENDED)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, whitespace data characters in the
|
||||
pattern are totally ignored except when escaped or inside a
|
||||
character class, and characters between an unescaped #
|
||||
outside a character class and the next newline character,
|
||||
inclusive, are also ignored. This is equivalent to Perl's /x
|
||||
modifier, and makes it possible to include comments inside
|
||||
complicated patterns. Note, however, that this applies only
|
||||
to data characters. Whitespace characters may never appear
|
||||
within special character sequences in a pattern, for example
|
||||
within the sequence (?( which introduces a conditional
|
||||
subpattern.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>e</emphasis></term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, <function>preg_replace</function>
|
||||
does normal substitution of backreferences in the
|
||||
replacement string, evaluates it as PHP code, and uses the
|
||||
result for replacing the search string.
|
||||
Single and double quotes are escaped by backslashes in substituted
|
||||
backreferences.
|
||||
</simpara>
|
||||
<para>
|
||||
Only <function>preg_replace</function> uses this modifier;
|
||||
it is ignored by other PCRE functions.
|
||||
<note>
|
||||
<simpara>
|
||||
This modifier was not available in PHP 3.
|
||||
</simpara>
|
||||
</note>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>A</emphasis> (PCRE_ANCHORED)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, the pattern is forced to be
|
||||
"anchored", that is, it is constrained to match only at the
|
||||
start of the string which is being searched (the "subject
|
||||
string"). This effect can also be achieved by appropriate
|
||||
constructs in the pattern itself, which is the only way to
|
||||
do it in Perl.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>D</emphasis> (PCRE_DOLLAR_ENDONLY)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
If this modifier is set, a dollar metacharacter in the pattern
|
||||
matches only at the end of the subject string. Without this
|
||||
modifier, a dollar also matches immediately before the final
|
||||
character if it is a newline (but not before any other
|
||||
newlines). This modifier is ignored if <emphasis>m</emphasis>
|
||||
modifier is set. There is no equivalent to this modifier in
|
||||
Perl.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>S</emphasis></term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
When a pattern is going to be used several times, it is
|
||||
worth spending more time analyzing it in order to speed up
|
||||
the time taken for matching. If this modifier is set, then
|
||||
this extra analysis is performed. At present, studying a
|
||||
pattern is useful only for non-anchored patterns that do not
|
||||
have a single fixed starting character.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>U</emphasis> (PCRE_UNGREEDY)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier inverts the "greediness" of the quantifiers so
|
||||
that they are not greedy by default, but become greedy if
|
||||
followed by "?". It is not compatible with Perl. It can also
|
||||
be set by a (?U)
|
||||
<link linkend="regexp.reference.internal-options">modifier setting within
|
||||
the pattern</link> or
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>X</emphasis> (PCRE_EXTRA)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier turns on additional functionality of PCRE that
|
||||
is incompatible with Perl. Any backslash in a pattern that
|
||||
is followed by a letter that has no special meaning causes
|
||||
an error, thus reserving these combinations for future
|
||||
expansion. By default, as in Perl, a backslash followed by a
|
||||
letter with no special meaning is treated as a literal.
|
||||
There are at present no other features controlled by this
|
||||
modifier.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis>u</emphasis> (PCRE_UTF8)</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This modifier turns on additional functionality of PCRE that
|
||||
is incompatible with Perl. Pattern strings are treated as
|
||||
UTF-8. This modifier is available from PHP 4.1.0 or greater
|
||||
on Unix and from PHP 4.2.3 on win32.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</blockquote>
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
|
Loading…
Reference in a new issue