PCRE: improvements

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@344324 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Alexey Pyltsyn
2018-02-21 10:53:46 +00:00
parent f682f24049
commit 39370f677f
18 changed files with 77 additions and 76 deletions

View File

@ -326,7 +326,7 @@ xmlns="http://docbook.org/ns/docbook"><simpara>Эта функция
<!ENTITY seealso.array.sorting '<link xmlns="http://docbook.org/ns/docbook" linkend="array.sorting">Сравнение функций сортировки массивов</link>'>
<!ENTITY seealso.callback 'информация о типе <link xmlns="http://docbook.org/ns/docbook" linkend="language.types.callback">callback</link>'>
<!ENTITY seealso.callback 'Информация о типе <link xmlns="http://docbook.org/ns/docbook" linkend="language.types.callback">callback</link>'>
<!ENTITY avail.register-long-arrays 'Начиная с PHP 5.0.0, длинные <link xmlns="http://docbook.org/ns/docbook" linkend="language.variables.predefined">предопределенные переменные</link> массивов PHP могут быть отключены директивой <link xmlns="http://docbook.org/ns/docbook" linkend="ini.register-long-arrays">register_long_arrays</link>.'>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<book xml:id="book.pcre" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
@ -17,17 +17,17 @@
Разделителем могут выступать произвольные символы, кроме
буквенно-цифровых, обратного слеша '\' и нулевого байта.
Если символ разделителя встречается в шаблоне, его необходимо
экранировать. Начиная с PHP 4.0.4 в качестве разделителя
экранировать. Начиная с PHP 4.0.4, в качестве разделителя
доступны комбинации, используемые в Perl: (), {}, [] и &lt;&gt;.
Подробней об этом рассказано в разделе
"<link linkend="reference.pcre.pattern.syntax">Синтаксис регулярных выражений</link>".
<link linkend="reference.pcre.pattern.syntax">Синтаксис регулярных выражений</link>.
</para>
<para>
После закрывающего разделителя можно указывать различные
модификаторы, влияющие на работу регулярных выражений.
Детальная информация доступна в разделе
"<link linkend="reference.pcre.pattern.modifiers">Модификаторы шаблонов</link>".
<link linkend="reference.pcre.pattern.modifiers">Модификаторы шаблонов</link>.
</para>
<para>
PHP также поддерживает POSIX-совместимые регулярные выражения, используя
@ -35,20 +35,20 @@
</para>
<note>
<para>
Этот модуль хранит глобальный (1 на поток) кэш компилированных
Этот модуль хранит глобальный (1 на поток) кеш компилированных
регулярных выражений (до 4096).
</para>
</note>
<warning>
<para>
Помните об ограничениях PCRE. См. документацию по PCRE <link
xlink:href="&url.pcre.man;">&url.pcre.man;</link> для информации.
xlink:href="&url.pcre.man;">&url.pcre.man;</link> для дополнительной информации.
</para>
</warning>
<para>
Библиотека PCRE - это набор функций, реализующих разбор регулярных
выражений с помощью того же синтаксиса и семантики, которая была
реализована в Perl 5, с некоторыми небольшими отличиями (см. ниже).
реализована в Perl 5, но с некоторыми небольшими отличиями (см. ниже).
Текущая реализация соответствует версии Perl 5.005.
</para>
</preface>

View File

@ -6,15 +6,15 @@
&reftitle.install;
<para>
Расширение PCRE является расширением ядра, поэтому оно всегда доступно.
По умолчанию, это расширение собирается с использованием встроенной библиотеки PCRE.
Также можно использовать внешнюю PCRE библиотеку, указав при сборке
По умолчанию это расширение собирается с использованием встроенной библиотеки PCRE.
Также можно использовать внешнюю PCRE-библиотеку, указав при сборке
параметр <option role="configure">--with-pcre-regex=DIR</option>, где
<literal>DIR</literal> указывает на директорию с библиотеками и
подключаемыми файлами PCRE. Для PHP 5.6 и 7.0 рекомендуется использовать
PCRE 8.10 и выше.
</para>
<para>
Начиная с PHP 7.0.0, по умолчанию поддерживается JIT компиляция PCRE. Ее можно
Начиная с PHP 7.0.0, по умолчанию поддерживается JIT-компиляция PCRE. Ее можно
отключить с помощью опции <option role="configure">--without-pcre-jit</option>
начиная с PHP 7.0.12.
</para>

View File

@ -6,7 +6,7 @@
&reftitle.constants;
&extension.constants;
<table>
<title>PREG константы</title>
<title>Константы PREG</title>
<tgroup cols="2">
<thead>
<row>
@ -22,7 +22,7 @@
Меняет порядок элементов в результирующем массиве так, чтобы
элемент <varname>$matches[0]</varname> содержал полные
вхождения шаблона, элемент <varname>$matches[1]</varname> -
все вхождения первой взятой в круглые скобки подмаски, и так далее.
все вхождения первой взятой в круглые скобки подмаски и т.
Только <function>preg_match_all</function> реагирует на
данный модификатор.
</entry>
@ -35,7 +35,7 @@
элемент <varname>$matches[0]</varname> содержал первый набор
вхождений (полное вхождение, вхождение первой подмаски,
заключенной в круглые скобки...), аналогично элемент
<varname>$matches[1]</varname> - второй набор вхождений, и так далее.
<varname>$matches[1]</varname> - второй набор вхождений и т.
Только <function>preg_match_all</function> реагирует на данный модификатор.
</entry>
<entry></entry>
@ -114,7 +114,7 @@
<entry><constant>PREG_BAD_UTF8_ERROR</constant></entry>
<entry>
Возвращается функцией <function>preg_last_error</function>, если
последняя ошибка была вызвана поврежденными UTF-8 данными
последняя ошибка была вызвана поврежденными данными UTF-8
(только при запуске в <link linkend="reference.pcre.pattern.modifiers">режиме UTF-8</link>).
</entry>
<entry>5.2.0</entry>
@ -131,7 +131,7 @@
<row xml:id="constant.preg-jit-stacklimit-error">
<entry><constant>PREG_JIT_STACKLIMIT_ERROR</constant></entry>
<entry>
Возвращается функцией <function>preg_last_error</function> если последняя
Возвращается функцией <function>preg_last_error</function>, если последняя
функция PCRE завершилась неудачно из-за лимита стека JIT.
</entry>
<entry>7.0.0</entry>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: tony2001 Status: ready -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<appendix xml:id="pcre.examples">
&reftitle.examples;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f08a981a30c7f1871577f6908c265b798f19b33f Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<refentry xml:id="function.preg-grep" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -31,7 +31,7 @@
<term><parameter>pattern</parameter></term>
<listitem>
<para>
Искомый шаблон, строка.
Искомый шаблон в виде строки.
</para>
</listitem>
</varlistentry>

View File

@ -46,7 +46,7 @@ if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает одну из следующих констант, (<link
Возвращает одну из следующих констант (<link
linkend="pcre.constants">описанных на отдельной странице.</link>):
<simplelist>
<member><constant>PREG_NO_ERROR</constant></member>
@ -56,8 +56,8 @@ if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
<member><constant>PREG_RECURSION_LIMIT_ERROR</constant> (см. также <link
linkend="ini.pcre.recursion-limit">pcre.recursion_limit</link>)</member>
<member><constant>PREG_BAD_UTF8_ERROR</constant></member>
<member><constant>PREG_BAD_UTF8_OFFSET_ERROR</constant> (начиная с PHP 5.3.0)</member>
<member><constant>PREG_JIT_STACKLIMIT_ERROR</constant> (начиная с PHP 7.0.0)</member>
<member><constant>PREG_BAD_UTF8_OFFSET_ERROR</constant> (с PHP 5.3.0)</member>
<member><constant>PREG_JIT_STACKLIMIT_ERROR</constant> (с PHP 7.0.0)</member>
</simplelist>
</para>
</refsect1>

View File

@ -38,7 +38,7 @@
<term><parameter>pattern</parameter></term>
<listitem>
<para>
Искомый шаблон, строка.
Искомый шаблон в виде строки.
</para>
</listitem>
</varlistentry>
@ -73,7 +73,7 @@
<para>
Упорядочивает результаты так, что элемент <varname>$matches[0]</varname>
содержит массив полных вхождений шаблона, элемент <varname>$matches[1]</varname>
содержит массив вхождений первой подмаски, и так далее.
содержит массив вхождений первой подмаски и т.
</para>
<para>
<informalexample>
@ -142,7 +142,7 @@ Array
<para>
Упорядочивает результаты так, что элемент <varname>$matches[0]</varname> содержит первый
набор вхождений, элемент <varname>$matches[1]</varname> содержит второй набор вхождений,
и так далее.
и т.
<informalexample>
<programlisting role="php">
<![CDATA[
@ -393,7 +393,7 @@ FOO;
preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);
/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
* однако, вышеуказанная форма рекомендуется для обратной совместимости */
* однако вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);
print_r($matches);
@ -452,7 +452,7 @@ Array
&reftitle.seealso;
<para>
<simplelist>
<member>"<link linkend="pcre.pattern">Регулярные выражения PCRE</link>"</member>
<member><link linkend="pcre.pattern">Регулярные выражения PCRE</link></member>
<member><function>preg_quote</function></member>
<member><function>preg_match</function></member>
<member><function>preg_replace</function></member>

View File

@ -32,7 +32,7 @@
<term><parameter>pattern</parameter></term>
<listitem>
<para>
Искомый шаблон, строка.
Искомый шаблон в виде строки.
</para>
</listitem>
</varlistentry>
@ -53,7 +53,7 @@
результатами поиска. Элемент <varname>$matches[0]</varname>
будет содержать часть строки, соответствующую вхождению
всего шаблона, <varname>$matches[1]</varname> - часть строки,
соответствующую первой подмаске, и так далее.
соответствующую первой подмаске и так далее.
</para>
</listitem>
</varlistentry>
@ -191,7 +191,7 @@ Array
</screen>
<para>
В качестве альтернативы <literal>substr()</literal>, используйте
утверждение <literal>\G</literal> вместо якоря <literal>^</literal>,
утверждение <literal>\G</literal> вместо якоря <literal>^</literal>
или модификатор <literal>A</literal>. Оба они работают с параметром <parameter>offset</parameter>.
</para>
</informalexample>
@ -228,7 +228,7 @@ Array
<row>
<entry>5.3.6</entry>
<entry>
Возвращает &false; если <parameter>offset</parameter> больше, чем длина
Возвращает &false;, если <parameter>offset</parameter> больше, чем длина
<parameter>subject</parameter>.
</entry>
</row>
@ -275,7 +275,7 @@ if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
<![CDATA[
<?php
/* Специальная последовательность \b в шаблоне означает границу слова,
* следовательно, только изолированное вхождение слова 'web' будет
следовательно, только изолированное вхождение слова 'web' будет
соответствовать маске, в отличие от "webbing" или "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "Вхождение найдено.";
@ -330,7 +330,7 @@ $str = 'foobar: 2008';
preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);
/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
* однако, вышеуказанная форма рекомендуется для обратной совместимости */
однако вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);
print_r($matches);

View File

@ -54,7 +54,7 @@
<para>
В случае, если указан необязательный параметр <parameter>delimiter</parameter>,
он будет также экранироваться. Это удобно для экранирования
разделителя, который используется в PCRE функциях. Наиболее
разделителя, который используется в PCRE-функциях. Наиболее
распространенным разделителем является символ <literal>/</literal>.
</para>
</listitem>
@ -98,7 +98,7 @@
&reftitle.examples;
<para>
<example>
<title><function>preg_quote</function> пример</title>
<title>Пример использования <function>preg_quote</function></title>
<programlisting role="php">
<![CDATA[
<?php

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 72af2380f5e6118d7823324ba69d6b33970f994f Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<refentry xml:id="function.preg-replace-callback-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -59,7 +59,7 @@
<term><parameter>count</parameter></term>
<listitem>
<para>
Если задан, то в указанную переменную будет записано число произведенных замен.
Если задан, то в указанную переменную будет записано количество произведенных замен.
</para>
</listitem>
</varlistentry>
@ -93,10 +93,10 @@ $subject = 'Aaaaaa Bbb';
preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
echo 'Найдено ', strlen($match[0]), ' совпадений "a"', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
echo 'Найдено ', strlen($match[0]), ' совпадений "b"', PHP_EOL;
}
],
$subject
@ -107,8 +107,8 @@ preg_replace_callback_array(
&example.outputs;
<screen>
<![CDATA[
6 matches for "a" found
3 matches for "b" found
Найдено 6 совпадений "a"
Найдено 3 совпадений "b"
]]>
</screen>
</example>

View File

@ -170,14 +170,14 @@ fclose($fp);
<?php
// Этот текст был использован в 2002 году
// мы хотим обновить даты к 2003 году
$text = "День дураков: 01/04/2002\n";
$text.= "Последнее Рождество было: 24/12/2001\n";
$text = "День смеха был 01/04/2002\n";
$text.= "Последнее Рождество было 24/12/2001\n";
// callback-функция
function next_year($matches)
{
// как обычно: $matches[0] - полное вхождение шаблона
// $matches[1] - вхождение первой подмаски,
// заключенной в круглые скобки, и так далее...
// заключенной в круглые скобки и так далее...
return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
@ -191,8 +191,8 @@ echo preg_replace_callback(
&example.outputs;
<screen>
<![CDATA[
День дураков: 01/04/2003
Последнее Рождество было: 24/12/2002
День смеха был 01/04/2003
Последнее Рождество было 24/12/2002
]]>
</screen>
</example>

View File

@ -351,7 +351,7 @@ xp***to
&reftitle.seealso;
<para>
<simplelist>
<member>"<link linkend="pcre.pattern">Регулярные выражения PCRE</link>"</member>
<member><link linkend="pcre.pattern">Регулярные выражения PCRE</link></member>
<member><function>preg_quote</function></member>
<member><function>preg_filter</function></member>
<member><function>preg_match</function></member>

View File

@ -22,19 +22,19 @@
<entry><link linkend="ini.pcre.backtrack-limit">pcre.backtrack_limit</link></entry>
<entry>"1000000"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступна с PHP 5.2.0.</entry>
<entry>Доступно с PHP 5.2.0.</entry>
</row>
<row>
<entry><link linkend="ini.pcre.recursion-limit">pcre.recursion_limit</link></entry>
<entry>"100000"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступна с PHP 5.2.0.</entry>
<entry>Доступно с PHP 5.2.0.</entry>
</row>
<row>
<entry><link linkend="ini.pcre.jit">pcre.jit</link></entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
<entry>Доступна с PHP 7.0.0.</entry>
<entry>Доступно с PHP 7.0.0.</entry>
</row>
</tbody>
</tgroup>
@ -53,7 +53,7 @@
</term>
<listitem>
<para>
Лимит обратных ссылок PCRE. Для PHP &lt; 5.3.7, значение по умолчанию 100000.
Лимит обратных ссылок PCRE. Для PHP &lt; 5.3.7 значение по умолчанию 100000.
</para>
</listitem>
</varlistentry>
@ -67,7 +67,7 @@
Лимит на рекурсию. Не забывайте о том, что если вы установите
достаточно высокое значение, то PCRE может превысить размер
стека (установленный операционной системой) и в конце концов
вызовет крушение PHP.
вызовет падение PHP.
</para>
</listitem>
</varlistentry>
@ -78,7 +78,7 @@
</term>
<listitem>
<para>
Будет использоваться PCRE just-in-time компиляция.
Будет ли использоваться JIT-компиляция PCRE.
</para>
</listitem>
</varlistentry>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<!-- splitted from ./en/functions/pcre.xml, last change in rev 1.2 -->
<article xml:id="reference.pcre.pattern.differences" xmlns="http://docbook.org/ns/docbook">
@ -11,20 +11,20 @@
<orderedlist>
<listitem>
<simpara>
По умолчанию, пробельный символ - это любой символ, который функция isspace()
По умолчанию пробельный символ - это любой символ, который функция isspace()
из библиотеки C опознает таковым, хотя возможно скомпилировать PCRE с альтернативными
таблицами символов. Функция isspace() определяет как пробельный следующие символы:
пробел, конец страницы (formfeed), перевод строки, возврат каретки, горизонтальную
табуляцию и вертикальную табуляцию. Perl 5 же, не включает вертикальную табуляцию в
список пробельных символов. Экранирование \v, долгое время присутствовавшее в
документации Perl, на самом деле никогда не распознавалось. Однако, символ как таковой,
табуляцию и вертикальную табуляцию. Perl 5 же не включает вертикальную табуляцию в
список пробельных символов. Экранирование \v долгое время присутствовавшее в
документации Perl на самом деле никогда не распознавалось. Однако, символ как таковой,
считался за пробельный до версии 5.002. В 5.004 и 5.005 он не определяется как \s.
</simpara>
</listitem>
<listitem>
<simpara>
PCRE не позволяет использовать квантификаторы повторения в опережающих
предположениях. Perl разрешает, но они не означаю того, о чем вы могли подумать. К
предположениях. Perl разрешает, но они не означают того, о чем вы могли подумать. К
примеру, (?!a){3} не проверяет, что следующие три символа не "a". Проверяется только то,
что следующий символ не "a" три раза.
</simpara>
@ -41,7 +41,7 @@
<listitem>
<simpara>
Хотя бинарные нулевые символы поддерживаются в проверяемой строке, они недопустимы
в строке шаблона, потому, что она передается как нормальная C строка, в которой этот
в строке шаблона, потому что она передается как нормальная C-строка, в которой этот
символ обозначает конец строки. Для его использования в строке шаблона необходимо
пользоваться конструкцией "\x00".
</simpara>
@ -49,7 +49,7 @@
<listitem>
<simpara>
Следующие экранирующие последовательности Perl не поддерживаются:
\l, \u, \L, \U. Фактически, они реализованы стандартным обработчикос строк Perl и
\l, \u, \L, \U. Фактически они реализованы стандартным обработчиком строк Perl и
не являются частью модуля обработки регулярных выражений.
</simpara>
</listitem>
@ -71,8 +71,8 @@
когда часть шаблона повторяется. К примеру, проверка "aba" шаблоном /^(a(b)?)+$/,
устанавливает $2 в значение "b", но проверка "aabbaa" шаблоном /^(aa(bb)?)+$/,
оставляет $2 не выставленной. Хотя, если шаблон поменять на /^(aa(b(b))?)+$/, то $2
(и $3) будут установлены. В Perl 5.004, $2 установится в обоих случаях, и это, также,
истинно и для PCRE. Если в будущем Perl как либо зафиксирует это поведение, PRCE
(и $3) будут установлены. В Perl 5.004, $2 установится в обоих случаях, и это также
истинно и для PCRE. Если в будущем Perl как-либо зафиксирует это поведение, PRCE
будет ему следовать.
</simpara>
</listitem>
@ -99,7 +99,7 @@
<simpara>
Если установлена <link linkend="reference.pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link>
и не установлена <link linkend="reference.pcre.pattern.modifiers">PCRE_MULTILINE</link>,
мета-символ $ распознается только в самом конце строки.
метасимвол $ распознается только в самом конце строки.
</simpara>
</listitem>
<listitem>
@ -112,8 +112,8 @@
<listitem>
<simpara>
Если установлена <link linkend="reference.pcre.pattern.modifiers">PCRE_UNGREEDY</link>,
жадность квантификаторов повторения инвертирована. То есть, по умолчанию они не
жадные, но если за ними знак вопроса, то да.
жадность квантификаторов повторения инвертирована. То есть по умолчанию они не
жадные, пока за ними не будет знак вопроса.
</simpara>
</listitem>
</orderedlist>

View File

@ -7,7 +7,7 @@
<titleabbrev>Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE)</titleabbrev>
<para>
Ниже перечислены все доступные на сегодняшний день модификаторы.
Имя, взятое в круглые скобки, указывает внутреннее PCRE имя для данного модификатора.
Имя, взятое в круглые скобки, указывает внутреннее PCRE-имя для данного модификатора.
Пробелы и переводы строк в модификаторах игнорируются, другие символы
вызывают ошибки.
</para>
@ -27,7 +27,7 @@
<term><emphasis>m</emphasis> (<literal>PCRE_MULTILINE</literal>)</term>
<listitem>
<simpara>
По умолчанию, PCRE обрабатывает данные как однострочную символьную строку
По умолчанию PCRE обрабатывает данные как однострочную символьную строку
(даже если она содержит несколько разделителей строк).
Метасимвол начала строки '^' соответствует только началу
обрабатываемого текста, в то время как метасимвол "конец строки"
@ -54,7 +54,7 @@
<simpara>
Если данный модификатор используется, метасимвол "точка"
в шаблоне соответствует всем символам, включая перевод
строк. Без него - всем, за исключением переводов строк.
строк. Без него - все символы, кроме переводов строк.
Этот модификатор эквивалентен записи /s в Perl.
Класс символов, построенный на отрицании, например [^a],
всегда соответствует переводу строки, независимо от
@ -175,7 +175,7 @@ $html = preg_replace_callback(
<listitem>
<simpara>
Если используется данный модификатор, соответствие шаблону
будет достигаться только в том случае, если он "заякорен", т.е.
будет достигаться только в том случае, если он "заякорен", то есть
соответствует началу строки, в которой производится поиск.
Того же эффекта можно достичь подходящей конструкцией с вложенным
шаблоном, которая является единственным способом реализации

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4fe7ad5b9e5edb16684a3d4323a84f64236977eb Maintainer: northcat Status: ready -->
<!-- Reviewed: no -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- $Revision$ -->
<article xml:id="reference.pcre.pattern.posix" xmlns="http://docbook.org/ns/docbook">
<title>Отличия от регулярных выражений POSIX</title>
<para>
По состоянию на PHP 5.3.0, расширение <link linkend="book.regex">регулярные выражения POSIX</link>
По состоянию на PHP 5.3.0 расширение <link linkend="book.regex">регулярных выражений POSIX</link>
считается устаревшим. Существует целый ряд отличий между регулярными выражениями POSIX и
PCRE. На этой странице перечислены наиболее важные из них, которые необходимо
знать для того, чтобы выполнить преобразование в PCRE.
@ -21,7 +21,7 @@
</listitem>
<listitem>
<simpara>
В отличие от POSIX, в расширении PCRE нет специальных функция для поиска совпадений
В отличие от POSIX, в расширении PCRE нет специальных функций для поиска совпадений
без учета регистра. Вместо них используется <link linkend="reference.pcre.pattern.modifiers">модификатор шаблона</link>
<emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>). Также доступны другие
модификаторы шаблонов для изменения стратегии поиска совпадений.
@ -54,8 +54,8 @@
не поддерживаются.
</simpara>
<simpara>
Передача выражения с символьным классом, начинающегося и заканчивающегося на
<literal>:</literal>, <literal>.</literal> или <literal>=</literal> символы,
Передача выражения с символьным классом, начинающегося и заканчивающегося на символы
<literal>:</literal>, <literal>.</literal> или <literal>=</literal>,
в PCRE рассматривается как попытка использования одной из этих неподдерживаемых функций
и вызывает ошибку компиляции.
</simpara>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- Reviewed: yes Maintainer: lex -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: tony2001 Status: ready -->
<reference xml:id="ref.pcre" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Функции для работы с регулярными выражениями (Perl-совместимые)</title>
<titleabbrev>PCRE</titleabbrev>
<title>&Functions; PCRE</title>
&reference.pcre.entities.functions;