1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/reference/pcre/pattern.modifiers.xml
2025-11-30 23:23:40 +01:00

242 lines
9.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b5aa3464c8817645633dc4364e1ac2d7b92c5b3f Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
<title>Opciones de búsqueda</title>
<titleabbrev>Opciones disponibles para las expresiones regulares</titleabbrev>
<para>
Las opciones de PCRE se listan a continuación. Los nombres entre
paréntesis son los nombres internos a PCRE.
Los espacios y los caracteres de nueva línea son ignorados
en los modificadores, los otros caracteres causan errores.
</para>
<para>
<blockquote>
<variablelist>
<varlistentry>
<term><emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)</term>
<listitem>
<simpara>
Realiza una búsqueda insensible a mayúsculas o minúsculas.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>m</emphasis> (<literal>PCRE_MULTILINE</literal>)</term>
<listitem>
<simpara>
Por omisión, PCRE trata la cadena sujeto como una sola
línea (aunque esta cadena contenga retornos de carro).
El metacarácter "inicio de línea" (^) solo será
válido una vez, al inicio de la línea, y el
metacarácter "fin de línea" ($) solo será válido
al final de la cadena, o antes del retorno de carro
final (a menos que se active la opción <emphasis>D</emphasis>).
Es el mismo funcionamiento que en Perl.
</simpara>
<simpara>
Cuando esta opción está activada, "inicio de línea" y
"fin de línea" corresponderán entonces a los caracteres
siguiente y precedente inmediatamente a
un carácter de nueva línea, además del inicio
y del final de la cadena. Es el mismo
funcionamiento que la opción Perl /m. Si no hay ningún
carácter de nueva línea "\n" en la cadena sujeto,
o si no hay ninguna ocurrencia de ^ o $ en el patrón, esta opción
no sirve de nada.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>s</emphasis> (<literal>PCRE_DOTALL</literal>)</term>
<listitem>
<simpara>
Con esta opción, el metacarácter punto (.)
reemplaza cualquier carácter, incluyendo las nuevas
líneas. Sin esta opción, el carácter punto no reemplaza
las nuevas líneas. Esta opción es equivalente
a la opción Perl /s. Una clase de caracteres
negativa como [^a] aceptará siempre los
caracteres de nuevas líneas, independientemente
de esta opción.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>x</emphasis> (<literal>PCRE_EXTENDED</literal>)</term>
<listitem>
<simpara>
Con esta opción, los caracteres de espacio son
ignorados, excepto cuando están escapados,
o dentro de una clase de caracteres,
y todos los caracteres entre # no escapados
y fuera de una clase de caracteres, y el próximo
carácter de nueva línea son ignorados. Es
el equivalente Perl de la opción /x: permite añadir
comentarios en los patrones complicados. Tenga en cuenta,
sin embargo, que esto solo se aplica a los caracteres de
datos. Los caracteres de espacio nunca deben
aparecer en las secuencias especiales
de un patrón, por ejemplo en la secuencia (?( que
introduce un paréntesis condicional.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>A</emphasis> (<literal>PCRE_ANCHORED</literal>)</term>
<listitem>
<simpara>
Con esta opción, el patrón está anclado de forma forzada, es decir
que el patrón debe aplicarse justo al inicio de la cadena sujeto
para ser considerado encontrado. Es posible realizar el
mismo efecto añadiendo los metacaracteres adecuados, lo cual es la
única manera de hacerlo en Perl.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>D</emphasis> (<literal>PCRE_DOLLAR_ENDONLY</literal>)</term>
<listitem>
<simpara>
Con esta opción, el metacarácter $ solo será
válido al final de la cadena sujeto. Sin
esta opción, $ también es válido antes de una nueva línea,
si esta última es el último carácter de
la cadena. Esta opción es ignorada si la opción
<emphasis>m</emphasis> está activada. No hay
equivalente en Perl.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>S</emphasis></term>
<listitem>
<simpara>
Cuando un patrón se utiliza varias veces, vale la pena
pasar unos instantes más para analizarlo
y optimizar el código para acelerar los
tratamientos posteriores. Esta opción fuerza este
análisis más exhaustivo. Actualmente, este análisis
solo es útil para los patrones no anclados, que
no comienzan por un carácter fijo.
Desde PHP 7.3.0, esta bandera ya no tiene efecto.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>U</emphasis> (<literal>PCRE_UNGREEDY</literal>)</term>
<listitem>
<simpara>
Esta opción invierte la tendencia a la gula de las
expresiones regulares. También puede invertirse
esta tendencia caso por caso con un <literal>?</literal> pero
esto hará gula la secuencia. Esta opción no es compatible
con Perl. También puede ponerse en el patrón con
la opción <literal>(?U)</literal> en el
<link linkend="regexp.reference.internal-options">patrón</link> o
por un punto de interrogación antes del cuantificador (.e.g. <literal>.*?</literal>).
</simpara>
<note>
<para>
No es generalmente posible hacer coincidir
más que el límite de <link
linkend="ini.pcre.backtrack-limit">pcre.backtrack_limit</link>
caracteres en modo no gula.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>X</emphasis> (<literal>PCRE_EXTRA</literal>)</term>
<listitem>
<simpara>
Esta opción añade otras funcionalidades incompatibles
con el PCRE de Perl. Todos los backslash seguidos de una letra que
no tendría un significado particular causan un error,
permitiendo la reserva de estas combinaciones para futuras
funcionalidades. Por omisión, como en Perl, los
backslash seguidos de una letra sin significado particular
son tratados como valores literales. Actualmente,
esta opción no activa otras funciones.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>J</emphasis> (<literal>PCRE_INFO_JCHANGED</literal>)</term>
<listitem>
<simpara>
La opción interna de configuración (?J) modifica la opción local <literal>PCRE_DUPNAMES</literal>.
Permite la duplicación de nombres para los subpatrones.
A partir de PHP 7.2.0 <literal>J</literal> también es soportado como modificador.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>)</term>
<listitem>
<simpara>
Esta opción activa funcionalidades adicionales de PCRE que no son compatibles con Perl.
La cadena de entrada y el patrón son tratados como cadenas UTF-8.
Una cadena de entrada inválida tendrá como consecuencia una ausencia de coincidencia en las funciones preg_*.
Un patrón inválido levantará un error de nivel <constant>E_WARNING</constant>.
Las secuencias UTF-8 de cinco y seis octetos son consideradas inválidas.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>n</emphasis> (<literal>PCRE_NO_AUTO_CAPTURE</literal>)</term>
<listitem>
<simpara>
Este modificador hace que los grupos simples <code>(xyz)</code> no sean capturantes.
Solo los grupos nombrados como <code>(?&lt;name&gt;xyz)</code> son capturantes.
Esto afecta únicamente a los grupos capturantes, siempre es posible
utilizar referencias de subpatrón numeradas, y el array de
coincidencias contendrá siempre resultados numerados.
Disponible a partir de PHP 8.2.0
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>r</emphasis> (<literal>PCRE2_EXTRA_CASELESS_RESTRICT</literal>)</term>
<listitem>
<simpara>
Cuando <emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>) y <emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)
están activos, este modificador impide la coincidencia entre los caracteres ASCII y no-ASCII.
</simpara>
<simpara>
Por ejemplo, <code>preg_match('/\x{212A}/iu', "K")</code> coincide con el símbolo Kelvin <literal></literal> (U+212A).
Cuando <emphasis>r</emphasis> es utilizado (<code>preg_match('/\x{212A}/iur', "K")</code>, esto no coincide.
</simpara>
<simpara>
Disponible a partir de 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
-->