mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-24 07:02:09 +01:00
231 lines
10 KiB
XML
231 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: b5aa3464c8817645633dc4364e1ac2d7b92c5b3f Maintainer: leonardolara Status: ready --><!-- CREDITS: leonardolara -->
|
||
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
|
||
<title>Modificadores de Expressão</title>
|
||
<titleabbrev>Possíveis modificadores em expressões regulares</titleabbrev>
|
||
<para>
|
||
Os possíveis modificadores PCRE atuais estão listados abaixo. Os nomes
|
||
entre parênteses referem-se a nomes PCRE internos para esses modificadores.
|
||
Espaços e novas linhas são ignorados nos modificadores, outros caracteres causam erro.
|
||
</para>
|
||
<para>
|
||
<blockquote>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Se este modificador estiver definido, as letras na expressão corresponderão
|
||
às letras maiúsculas e minúsculas.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>m</emphasis> (<literal>PCRE_MULTILINE</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Por padrão, o PCRE trata a string de entrada como
|
||
uma única "linha" de caracteres (mesmo que na verdade contenha
|
||
vários caracteres de nova linha). O metacaractere "início de linha" (^)
|
||
corresponde apenas ao início da string, enquanto que o metacaractere
|
||
"fim de linha" ($) corresponde apenas ao final da
|
||
string ou antes de um caractere final de nova linha (a menos
|
||
que o modificador <emphasis>D</emphasis> esteja definido). O comportamento
|
||
é o mesmo no Perl.
|
||
</simpara>
|
||
<simpara>
|
||
Quando este modificador é definido, as construções "início de linha" e
|
||
"fim de linha" correspondem imediatamente após ou imediatamente
|
||
antes de qualquer caractere de nova linha na string de entrada, respectivamente, bem
|
||
como no início e no final. Isso é equivalente ao
|
||
modificador /m do Perl. Se não houver caracteres "\n" em uma
|
||
string de entrada ou nenhuma ocorrência de ^ ou $ em uma expressão,
|
||
a configuração desse modificador não terá efeito.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>s</emphasis> (<literal>PCRE_DOTALL</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Se este modificador estiver definido, um metacaractere de ponto na expressão
|
||
corresponderá a todos os caracteres, incluindo os de nova linha. Sem ele,
|
||
os de nova linha são excluídas. Este modificador é equivalente ao
|
||
modificador /s do Perl. Uma classe negativa como [^a] sempre corresponde a
|
||
um caractere de nova linha, independente da configuração deste
|
||
modificador.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>x</emphasis> (<literal>PCRE_EXTENDED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Se este modificador estiver definido, os caracteres de espaço em branco de dados na
|
||
expressão serão totalmente ignorados, exceto quando escapados ou dentro de uma
|
||
classe de caracteres, e os caracteres entre um # sem escape
|
||
fora de uma classe de caracteres e o próximo caractere de nova linha,
|
||
inclusive, também serão ignorados. Isto é equivalente ao modificador
|
||
/x do Perl e torna possível incluir comentários dentro de
|
||
padrões complexos. Observe, entretanto, que isso se aplica apenas
|
||
a caracteres de dados. Os caracteres de espaço em branco nunca podem aparecer
|
||
em sequências de caracteres especiais em uma expressão, por exemplo,
|
||
dentro da sequência (?( que introduz uma sub-expressão
|
||
condicional.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>A</emphasis> (<literal>PCRE_ANCHORED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Se este modificador estiver definido, a expressão é forçada a ser
|
||
"ancorada", ou seja, é restrita a corresponder apenas ao
|
||
início da string que está sendo pesquisada (a "string
|
||
de entrada"). Este efeito também pode ser alcançado por construções
|
||
apropriadas na própria expressão, que é a única maneira de
|
||
fazer isso em Perl.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>D</emphasis> (<literal>PCRE_DOLLAR_ENDONLY</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Se esse modificador estiver definido, um metacaractere de cifrão na expressão
|
||
corresponderá apenas ao final da string de entrada. Sem esse
|
||
modificador, um cifrão também corresponde imediatamente antes do caractere
|
||
final se for um de nova linha (mas não antes de qualquer outro
|
||
de nova linha). Este modificador é ignorado se o modificador <emphasis>m</emphasis>
|
||
estiver definido. Não há equivalente a este modificador no
|
||
Perl.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>S</emphasis></term>
|
||
<listitem>
|
||
<simpara>
|
||
Quando uma expressão vai ser usada várias vezes, vale a
|
||
pena gastar mais tempo analisando-a para agilizar
|
||
o tempo de correspondência. Se este modificador estiver definido,
|
||
esta análise extra será executada. Atualmente, estudar uma
|
||
expressão é útil apenas para expressões não ancoradas que não
|
||
possuem um caractere inicial único fixo.
|
||
A partir do PHP 7.3.0, este modificador não tem efeito.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>U</emphasis> (<literal>PCRE_UNGREEDY</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Este modificador inverte a "ganância" dos quantificadores para
|
||
que eles não sejam gananciosos por padrão, mas se tornem gananciosos se
|
||
seguidos por <literal>?</literal>. Não é compatível com o Perl. Também pode
|
||
ser definido por uma <link linkend="regexp.reference.internal-options">configuração
|
||
de modificador dentro da expressão</link>
|
||
<literal>(?U)</literal> ou por um ponto de interrogação atrás de um quantificador
|
||
(por exemplo, <literal>.*?</literal>).
|
||
</simpara>
|
||
<note>
|
||
<para>
|
||
Geralmente não é possível corresponder mais do que <link
|
||
linkend="ini.pcre.backtrack-limit">pcre.backtrack_limit</link>
|
||
caracteres no modo não ganancioso.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>X</emphasis> (<literal>PCRE_EXTRA</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Este modificador ativa funcionalidades adicionais do PCRE que
|
||
são incompatíveis com o Perl. Qualquer barra invertida em uma expressão
|
||
seguida por uma letra sem significado especial causa
|
||
um erro, reservando assim essas combinações para expansão
|
||
futura. Por padrão, como no Perl, uma barra invertida seguida por uma
|
||
letra sem significado especial é tratada como um literal.
|
||
Atualmente não há outras características controladas por este
|
||
modificador.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>J</emphasis> (<literal>PCRE_INFO_JCHANGED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
A configuração de opção interna (?J) altera a opção local <literal>PCRE_DUPNAMES</literal>.
|
||
Permite nomes duplicados para sub-expressões.
|
||
A partir do PHP 7.2.0, <literal>J</literal> também é suportado como modificador.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Este modificador ativa funcionalidades adicionais do PCRE que
|
||
são incompatíveis com o Perl. As strings de expressão e de entrada são
|
||
tratadas como UTF-8. Uma string de entrada inválida fará com que a função preg_*
|
||
não corresponda a nada; uma expressão inválida irá causar um erro de
|
||
nível E_WARNING. Sequências UTF-8 de cinco e seis octetos são
|
||
consideradas inválidas.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>n</emphasis> (<literal>PCRE_NO_AUTO_CAPTURE</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Este modificador torna grupos <code>(xyz)</code> simples não capturáveis.
|
||
Somente grupos nomeados como <code>(?<nome>xyz)</code> serão capturáveis.
|
||
Isso afeta apenas quais grupos estão sendo capturados, ainda é possível usar
|
||
referências numeradas de sub-expressões e o array de correspondências ainda
|
||
conterá resultados numerados. Disponível a partir do PHP 8.2.0.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>r</emphasis> (<literal>PCRE2_EXTRA_CASELESS_RESTRICT</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Quando <emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>) e <emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)
|
||
estão ativos, este modificador evita correspondência entre caracteres ASCII e não-ASCII.
|
||
</simpara>
|
||
<simpara>
|
||
Por exemplo, <code>preg_match('/\x{212A}/iu', "K")</code> corresponde ao símbolo de Kelvin <literal>K</literal> (U+212A).
|
||
Quando <emphasis>r</emphasis> é usado (<code>preg_match('/\x{212A}/iur', "K")</code>), não há correspondência.
|
||
</simpara>
|
||
<simpara>
|
||
Disponível a partir do PHP 8.4.0.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</blockquote>
|
||
</para>
|
||
</article>
|
||
|
||
<!-- 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:"~/.phpdoc/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
|
||
-->
|