<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.11 $ --> <reference id="ref.pcre"> <title>Regular Expression Functions (Perl-Compatible)</title> <titleabbrev>PCRE</titleabbrev> <partintro> <section id="pcre.intro"> &reftitle.intro; <para> 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 <link linkend="pcre.pattern.syntax">Pattern Syntax</link> for detailed explanation. </para> <para> The ending delimiter may be followed by various modifiers that affect the matching. See <link linkend="pcre.pattern.modifiers">Pattern Modifiers</link>. </para> <para> PHP also supports regular expressions using a POSIX-extended syntax using the <link linkend="ref.regex">POSIX-extended regex functions</link>. </para> <warning> <para> You should be aware of some limitations of PCRE. Read <ulink url="&url.pcre.man;">&url.pcre.man;</ulink> for more info. </para> </warning> </section> <section id="pcre.requirements"> &reftitle.required; <para> 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 <ulink url="&url.pcre;">&url.pcre;</ulink>. </para> </section> &reference.pcre.configure; <section id="pcre.configuration"> &reftitle.runtime; &no.config; </section> <section id="pcre.resources"> &reftitle.resources; &no.resource; </section> &reference.pcre.constants; <section id="pcre.examples"> &reftitle.examples; <para> <example> <title>Examples of valid patterns</title> <itemizedlist> <listitem><simpara><literal>/<\/\w+>/</literal></simpara></listitem> <listitem><simpara><literal>|(\d{3})-\d+|Sm</literal></simpara></listitem> <listitem><simpara><literal>/^(?i)php[34]/</literal></simpara></listitem> <listitem><simpara><literal>{^\s+(\s+)?$}</literal></simpara></listitem> </itemizedlist> </example> </para> <para> <example> <title>Examples of invalid patterns</title> <itemizedlist> <listitem> <simpara> <literal>/href='(.*)'</literal> - missing ending delimiter </simpara> </listitem> <listitem> <simpara> <literal>/\w+\s*\w+/J</literal> - unknown modifier 'J' </simpara> </listitem> <listitem> <simpara> <literal>1-\d3-\d3-\d4|</literal> - missing starting delimiter </simpara> </listitem> </itemizedlist> </example> </para> </section> </partintro> &reference.pcre.pattern.modifiers; &reference.pcre.pattern.syntax; &reference.pcre.functions; </reference> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->