<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/reference.pcre.pattern.syntax.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'regexp.reference.character-classes.php',
    1 => 'Clases de caracteres',
    2 => 'Clases de caracteres',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Sintaxis de expresiones regulares PCRE',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.dot.php',
    1 => 'Punto',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.alternation.php',
    1 => 'Alternancia',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pcre/pattern.syntax.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="regexp.reference.character-classes" class="section">
  <h2 class="title">Clases de caracteres</h2>
  <p class="para">
   Un corchete de apertura introduce una clase de caracteres,
   terminada por un corchete de cierre. Un corchete de cierre por sí solo no es especial. Si se requiere un corchete de cierre como miembro de la clase, debe ser
   el primer carácter de datos en la clase (después de un circunflejo inicial, si está presente) o escapado con una barra invertida.
  </p>
  <p class="para">
   Una clase de caracteres coincide con un solo carácter en el sujeto;
   el carácter debe estar en el conjunto de caracteres definido por
   la clase, a menos que el primer carácter en la clase sea un
   circunflejo, en cuyo caso el carácter del sujeto no debe estar en
   el conjunto definido por la clase. Si se requiere un circunflejo como
   miembro de la clase, asegúrese de que no sea el
   primer carácter, o escápelo con una barra invertida.
  </p>
  <p class="para">
   Por ejemplo, la clase de caracteres [aeiou] coincide con cualquier vocal minúscula, mientras que [^aeiou] coincide con cualquier carácter que no sea
   una vocal minúscula. Tenga en cuenta que un circunflejo es solo una
   notación conveniente para especificar los caracteres que están en
   la clase enumerando aquellos que no están. No es una
   afirmación: aún consume un carácter de la cadena de sujeto,
   y falla si el puntero actual está al final
   de la cadena.
  </p>
  <p class="para">
   Cuando se establece la coincidencia sin distinción de mayúsculas y minúsculas, cualquier letra
   en una clase representa tanto su versión mayúscula como minúscula,
   por lo que, por ejemplo, una [aeiou] insensible coincide con &quot;A&quot;
   así como con &quot;a&quot;, y una [^aeiou] insensible no coincide
   con &quot;A&quot;, mientras que una versión sensible (con distinción de mayúsculas y minúsculas) sí.
  </p>
  <p class="para">
   El carácter de nueva línea nunca se trata de manera especial en
   clases de caracteres, independientemente de la configuración de las opciones <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_DOTALL</a>
   o <a href="reference.pcre.pattern.modifiers.php" class="link">PCRE_MULTILINE</a>. Una clase como [^a] siempre coincide con una nueva línea.
  </p>
  <p class="para">
   El carácter de guión puede usarse para especificar un rango
   de caracteres en una clase de caracteres. Por ejemplo, [d-m]
   coincide con cualquier letra entre d y m, inclusive. Si se requiere un carácter de guión en una clase, debe escaparse con una
   barra invertida o aparecer en una posición donde no pueda
   interpretarse como indicación de un rango, típicamente como el primer o último
   carácter en la clase.
  </p>
  <p class="para">
   No es posible tener el carácter literal &quot;]&quot; como el
   carácter final de un rango. Un patrón como [W-]46] es
   interpretado como una clase de dos caracteres (&quot;W&quot; y &quot;-&quot;)
   seguido de una cadena literal &quot;46]&quot;, por lo que coincidiría con &quot;W46]&quot; o
   &quot;-46]&quot;. Sin embargo, si el &quot;]&quot; se escapa con una barra invertida, se interpreta como el final del rango, por lo que [W-\]46] es
   interpretado como una sola clase que contiene un rango seguido de dos
   caracteres separados. También se puede usar la representación octal o hexadecimal
   de &quot;]&quot; para terminar un rango.
  </p>
  <p class="para">
   Los rangos operan en la secuencia de clasificación ASCII. También pueden usarse para caracteres especificados numéricamente, por ejemplo
   [\000-\037]. Si se usa un rango que incluye letras cuando se establece la
   coincidencia sin distinción de mayúsculas y minúsculas, coincide con
   las letras en cualquier caso. Por ejemplo, [W-c] es equivalente a
   [][\^_`wxyzabc], coincidiendo sin distinción de mayúsculas y minúsculas, y si se usan tablas de caracteres para la configuración regional &quot;fr&quot;, [\xc8-\xcb] coincide
   con caracteres E acentuados en ambos casos.
  </p>
  <p class="para">
   Los tipos de caracteres \d, \D, \s, \S, \w, y \W también
   pueden aparecer en una clase de caracteres, y añaden los caracteres que
   coinciden a la clase. Por ejemplo, [\dABCDEF] coincide con cualquier
   dígito hexadecimal. Un circunflejo puede usarse convenientemente
   con los tipos de caracteres mayúsculas para especificar un conjunto más
   restringido de caracteres que el tipo minúscula correspondiente.
   Por ejemplo, la clase [^\W_] coincide con cualquier letra o dígito,
   pero no con el guión bajo.
  </p>
  <p class="para">
   Todos los caracteres no alfanuméricos excepto \, -, ^ (al inicio) y el terminador ] son no especiales en clases de caracteres, pero no causa daño si están escapados. El terminador del patrón es siempre especial y debe escaparse cuando se usa
   dentro de una expresión.
  </p>
  <p class="para">
   Perl soporta la notación POSIX para clases de caracteres. Esta usa nombres
   encerrados por <code class="literal">[:</code> y <code class="literal">:]</code> dentro
   de los corchetes de apertura y cierre. PCRE también
   soporta esta notación. Por ejemplo, <code class="literal">[01[:alpha:]%]</code>
   coincide con &quot;0&quot;, &quot;1&quot;, cualquier carácter alfabético, o &quot;%&quot;. Las clases de nombres soportadas son:
   <table class="doctable table">
    <caption><strong>Clases de caracteres</strong></caption>
    
     <tbody class="tbody">
      <tr><td><code class="literal">alnum</code></td><td>letras y dígitos</td></tr>

      <tr><td><code class="literal">alpha</code></td><td>letras</td></tr>

      <tr><td><code class="literal">ascii</code></td><td>códigos de caracteres 0 - 127</td></tr>

      <tr><td><code class="literal">blank</code></td><td>solo espacio o tabulación</td></tr>

      <tr><td><code class="literal">cntrl</code></td><td>caracteres de control</td></tr>

      <tr><td><code class="literal">digit</code></td><td>dígitos decimales (igual que \d)</td></tr>

      <tr><td><code class="literal">graph</code></td><td>caracteres de impresión, excluyendo espacio</td></tr>

      <tr><td><code class="literal">lower</code></td><td>letras minúsculas</td></tr>

      <tr><td><code class="literal">print</code></td><td>caracteres de impresión, incluyendo espacio</td></tr>

      <tr><td><code class="literal">punct</code></td><td>caracteres de impresión, excluyendo letras y dígitos</td></tr>

      <tr><td><code class="literal">space</code></td><td>espacio en blanco (no exactamente igual que \s)</td></tr>

      <tr><td><code class="literal">upper</code></td><td>letras mayúsculas</td></tr>

      <tr><td><code class="literal">word</code></td><td>caracteres de &quot;palabra&quot; (igual que \w)</td></tr>

      <tr><td><code class="literal">xdigit</code></td><td>dígitos hexadecimales</td></tr>

     </tbody>
    
   </table>

   Los caracteres <code class="literal">space</code> son HT (9), LF (10), VT (11), FF (12), CR (13),
   y espacio (32). Observe que esta lista incluye el carácter VT (código
   11). Esto hace que &quot;space&quot; sea diferente a <code class="literal">\s</code>, que no incluye VT (para compatibilidad con Perl).
  </p>
  <p class="para">
   El nombre <code class="literal">word</code> es una extensión de Perl, y <code class="literal">blank</code> es una extensión de GNU
   de Perl 5.8. Otra extensión de Perl es la negación, que se indica
   con un carácter <code class="literal">^</code> después de los dos puntos. Por ejemplo,
   <code class="literal">[12[:^digit:]]</code> coincide con &quot;1&quot;, &quot;2&quot;, o cualquier no dígito.
  </p>
  <p class="para">
   En modo UTF-8, los caracteres con valores mayores que 128 no coinciden con ninguna
   de las clases de caracteres POSIX.
   A partir de libpcre 8.10, algunas clases de caracteres se cambian para usar
   propiedades de caracteres Unicode, en cuyo caso la restricción mencionada no se aplica. Consulte el <a href="http://www.pcre.org/pcre.txt" class="link external">&raquo;&nbsp;manual PCRE(3)</a>
   para obtener más detalles.
  </p>
  <p class="para">
   Las propiedades de caracteres Unicode pueden aparecer dentro de una clase de caracteres. No pueden ser parte de un rango. El carácter de guión después de una clase de caracteres Unicode coincidirá literalmente. Intentar terminar un rango con una propiedad de caracteres Unicode resultará en una advertencia.
  </p>
 </div><?php manual_footer($setup); ?>