<?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.unicode.php',
    1 => 'Propiedades de caracteres Unicode',
    2 => 'Propiedades de caracteres Unicode',
  ),
  'up' => 
  array (
    0 => 'reference.pcre.pattern.syntax.php',
    1 => 'Sintaxis de expresiones regulares PCRE',
  ),
  'prev' => 
  array (
    0 => 'regexp.reference.escape.php',
    1 => 'Secuencias de escape',
  ),
  'next' => 
  array (
    0 => 'regexp.reference.anchors.php',
    1 => 'Anclajes',
  ),
  '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.unicode" class="section">
  <h2 class="title">Propiedades de caracteres Unicode</h2>
  <p class="para">
   Desde 5.1.0, tres
   secuencias de escape adicionales para coincidir con tipos de caracteres genéricos están disponibles
   cuando se selecciona el <em>modo UTF-8</em>. Son:
  </p>
  <dl>
   
    <dt><em>\p{xx}</em></dt>
    <dd><p class="simpara">un carácter con la propiedad xx</p></dd>
   
   
    <dt><em>\P{xx}</em></dt>
    <dd><p class="simpara">un carácter sin la propiedad xx</p></dd>
   
   
    <dt><em>\X</em></dt>
    <dd><p class="simpara">una secuencia Unicode extendida</p></dd>
   
  </dl>
  <p class="para">
   Los nombres de propiedades representados por <code class="literal">xx</code> arriba están limitados
   a las propiedades generales de categoría Unicode. Cada carácter tiene exactamente una
   de estas propiedades, especificada por una abreviatura de dos letras. Para compatibilidad con
   Perl, la negación puede especificarse incluyendo un circunflejo entre la llave de apertura y el nombre de la propiedad. Por ejemplo, <code class="literal">\p{^Lu}</code>
   es lo mismo que <code class="literal">\P{Lu}</code>.
  </p>
  <p class="para">
   Si solo se especifica una letra con <code class="literal">\p</code> o
   <code class="literal">\P</code>, incluye todas las propiedades que comienzan con esa
   letra. En este caso, en ausencia de negación, las llaves en la
   secuencia de escape son opcionales; estos dos ejemplos tienen el mismo efecto:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
\p{L}
\pL
</pre></div>
   </div>

  </div>
  <table class="doctable table">
   <caption><strong>Códigos de propiedades admitidos</strong></caption>
   
    <thead>
     <tr>
      <th>Propiedad</th>
      <th>Coincide con</th>
      <th>Notas</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><code class="literal">C</code></td>
      <td>Otro</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Cc</code></td>
      <td>Control</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Cf</code></td>
      <td>Formato</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Cn</code></td>
      <td>No asignado</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Co</code></td>
      <td>Uso privado</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Cs</code></td>
      <td>Sustituto</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">L</code></td>
      <td>Letra</td>
      <td>
       Incluye las siguientes propiedades: <code class="literal">Ll</code>,
       <code class="literal">Lm</code>, <code class="literal">Lo</code>, <code class="literal">Lt</code> y
       <code class="literal">Lu</code>.
      </td>
     </tr>

     <tr>
      <td><code class="literal">Ll</code></td>
      <td>Letra minúscula</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Lm</code></td>
      <td>Letra modificadora</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Lo</code></td>
      <td>Otra letra</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Lt</code></td>
      <td>Letra con mayúscula inicial</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Lu</code></td>
      <td>Letra mayúscula</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">M</code></td>
      <td>Marca</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Mc</code></td>
      <td>Marca de espacio</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Me</code></td>
      <td>Marca de cierre</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Mn</code></td>
      <td>Marca no espaciada</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">N</code></td>
      <td>Número</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Nd</code></td>
      <td>Número decimal</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Nl</code></td>
      <td>Número de letra</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">No</code></td>
      <td>Otro número</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">P</code></td>
      <td>Puntuación</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Pc</code></td>
      <td>Puntuación de conexión</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Pd</code></td>
      <td>Puntuación de guión</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Pe</code></td>
      <td>Puntuación de cierre</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Pf</code></td>
      <td>Puntuación final</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Pi</code></td>
      <td>Puntuación inicial</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Po</code></td>
      <td>Otra puntuación</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Ps</code></td>
      <td>Puntuación de apertura</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">S</code></td>
      <td>Símbolo</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Sc</code></td>
      <td>Símbolo de moneda</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Sk</code></td>
      <td>Símbolo modificador</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Sm</code></td>
      <td>Símbolo matemático</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">So</code></td>
      <td>Otro símbolo</td>
      <td>Incluye emojis</td>
     </tr>

     <tr>
      <td><code class="literal">Z</code></td>
      <td>Separador</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Zl</code></td>
      <td>Separador de línea</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Zp</code></td>
      <td>Separador de párrafo</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">Zs</code></td>
      <td>Separador de espacio</td>
      <td class="empty">&nbsp;</td>
     </tr>

    </tbody>
   
  </table>

  <p class="para">
   Las propiedades extendidas como <code class="literal">InMusicalSymbols</code> no
   son soportadas por PCRE.
  </p>
  <p class="para">
   Especificar coincidencia sin distinción de mayúsculas y minúsculas no afecta estas secuencias de escape.
   Por ejemplo, <code class="literal">\p{Lu}</code> siempre coincide solo con letras mayúsculas.
  </p>
  <p class="para">
   Los conjuntos de caracteres Unicode están definidos como pertenecientes a ciertos scripts. Un
   carácter de uno de estos conjuntos puede coincidir usando un nombre de script. Por
   ejemplo:
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="simpara"><code class="literal">\p{Greek}</code></p>
   </li>
   <li class="listitem">
    <p class="simpara"><code class="literal">\P{Han}</code></p>
   </li>
  </ul>
  <p class="para">
   Aquellos que no son parte de un script identificado se agrupan juntos como
   <code class="literal">Common</code>. La lista actual de scripts es:
  </p>
  <table class="doctable table">
   <caption><strong>Scripts admitidos</strong></caption>
   
    <tbody class="tbody">
     <tr>
      <td><code class="literal">Arabic</code></td>
      <td><code class="literal">Armenian</code></td>
      <td><code class="literal">Avestan</code></td>
      <td><code class="literal">Balinese</code></td>
      <td><code class="literal">Bamum</code></td>
     </tr>

     <tr>
      <td><code class="literal">Batak</code></td>
      <td><code class="literal">Bengali</code></td>
      <td><code class="literal">Bopomofo</code></td>
      <td><code class="literal">Brahmi</code></td>
      <td><code class="literal">Braille</code></td>
     </tr>

     <tr>
      <td><code class="literal">Buginese</code></td>
      <td><code class="literal">Buhid</code></td>
      <td><code class="literal">Canadian_Aboriginal</code></td>
      <td><code class="literal">Carian</code></td>
      <td><code class="literal">Chakma</code></td>
     </tr>

     <tr>
      <td><code class="literal">Cham</code></td>
      <td><code class="literal">Cherokee</code></td>
      <td><code class="literal">Common</code></td>
      <td><code class="literal">Coptic</code></td>
      <td><code class="literal">Cuneiform</code></td>
     </tr>

     <tr>
      <td><code class="literal">Cypriot</code></td>
      <td><code class="literal">Cyrillic</code></td>
      <td><code class="literal">Deseret</code></td>
      <td><code class="literal">Devanagari</code></td>
      <td><code class="literal">Egyptian_Hieroglyphs</code></td>
     </tr>

     <tr>
      <td><code class="literal">Ethiopic</code></td>
      <td><code class="literal">Georgian</code></td>
      <td><code class="literal">Glagolitic</code></td>
      <td><code class="literal">Gothic</code></td>
      <td><code class="literal">Greek</code></td>
     </tr>

     <tr>
      <td><code class="literal">Gujarati</code></td>
      <td><code class="literal">Gurmukhi</code></td>
      <td><code class="literal">Han</code></td>
      <td><code class="literal">Hangul</code></td>
      <td><code class="literal">Hanunoo</code></td>
     </tr>

     <tr>
      <td><code class="literal">Hebrew</code></td>
      <td><code class="literal">Hiragana</code></td>
      <td><code class="literal">Imperial_Aramaic</code></td>
      <td><code class="literal">Inherited</code></td>
      <td><code class="literal">Inscriptional_Pahlavi</code></td>
     </tr>

     <tr>
      <td><code class="literal">Inscriptional_Parthian</code></td>
      <td><code class="literal">Javanese</code></td>
      <td><code class="literal">Kaithi</code></td>
      <td><code class="literal">Kannada</code></td>
      <td><code class="literal">Katakana</code></td>
     </tr>

     <tr>
      <td><code class="literal">Kayah_Li</code></td>
      <td><code class="literal">Kharoshthi</code></td>
      <td><code class="literal">Khmer</code></td>
      <td><code class="literal">Lao</code></td>
      <td><code class="literal">Latin</code></td>
     </tr>

     <tr>
      <td><code class="literal">Lepcha</code></td>
      <td><code class="literal">Limbu</code></td>
      <td><code class="literal">Linear_B</code></td>
      <td><code class="literal">Lisu</code></td>
      <td><code class="literal">Lycian</code></td>
     </tr>

     <tr>
      <td><code class="literal">Lydian</code></td>
      <td><code class="literal">Malayalam</code></td>
      <td><code class="literal">Mandaic</code></td>
      <td><code class="literal">Meetei_Mayek</code></td>
      <td><code class="literal">Meroitic_Cursive</code></td>
     </tr>

     <tr>
      <td><code class="literal">Meroitic_Hieroglyphs</code></td>
      <td><code class="literal">Miao</code></td>
      <td><code class="literal">Mongolian</code></td>
      <td><code class="literal">Myanmar</code></td>
      <td><code class="literal">New_Tai_Lue</code></td>
     </tr>

     <tr>
      <td><code class="literal">Nko</code></td>
      <td><code class="literal">Ogham</code></td>
      <td><code class="literal">Old_Italic</code></td>
      <td><code class="literal">Old_Persian</code></td>
      <td><code class="literal">Old_South_Arabian</code></td>
     </tr>

     <tr>
      <td><code class="literal">Old_Turkic</code></td>
      <td><code class="literal">Ol_Chiki</code></td>
      <td><code class="literal">Oriya</code></td>
      <td><code class="literal">Osmanya</code></td>
      <td><code class="literal">Phags_Pa</code></td>
     </tr>

     <tr>
      <td><code class="literal">Phoenician</code></td>
      <td><code class="literal">Rejang</code></td>
      <td><code class="literal">Runic</code></td>
      <td><code class="literal">Samaritan</code></td>
      <td><code class="literal">Saurashtra</code></td>
     </tr>

     <tr>
      <td><code class="literal">Sharada</code></td>
      <td><code class="literal">Shavian</code></td>
      <td><code class="literal">Sinhala</code></td>
      <td><code class="literal">Sora_Sompeng</code></td>
      <td><code class="literal">Sundanese</code></td>
     </tr>

     <tr>
      <td><code class="literal">Syloti_Nagri</code></td>
      <td><code class="literal">Syriac</code></td>
      <td><code class="literal">Tagalog</code></td>
      <td><code class="literal">Tagbanwa</code></td>
      <td><code class="literal">Tai_Le</code></td>
     </tr>

     <tr>
      <td><code class="literal">Tai_Tham</code></td>
      <td><code class="literal">Tai_Viet</code></td>
      <td><code class="literal">Takri</code></td>
      <td><code class="literal">Tamil</code></td>
      <td><code class="literal">Telugu</code></td>
     </tr>

     <tr>
      <td><code class="literal">Thaana</code></td>
      <td><code class="literal">Thai</code></td>
      <td><code class="literal">Tibetan</code></td>
      <td><code class="literal">Tifinagh</code></td>
      <td><code class="literal">Ugaritic</code></td>
     </tr>

     <tr>
      <td><code class="literal">Vai</code></td>
      <td><code class="literal">Yi</code></td>
      <td class="empty">&nbsp;</td>
      <td class="empty">&nbsp;</td>
      <td class="empty">&nbsp;</td>
     </tr>

    </tbody>
   
  </table>

  <p class="para">
   La secuencia de escape <code class="literal">\X</code> coincide con un grupo de grafemas extendido de Unicode. Un grupo de grafemas extendido es uno o más caracteres Unicode
   que se combinan para formar un solo glifo. En efecto, esto puede considerarse como
   el equivalente de Unicode de <code class="literal">.</code> ya que coincidirá con un
   carácter compuesto, independientemente de cuántos caracteres individuales se
   utilicen realmente para renderizarlo.
  </p>
  <p class="simpara">
   En versiones de PCRE anteriores a 8.32 (que corresponde a versiones de PHP anteriores a 5.4.14 cuando se usa la biblioteca PCRE incluida), <code class="literal">\X</code>
   es equivalente a <code class="literal">(?&gt;\PM\pM*)</code>. Es decir, coincide con un carácter sin la propiedad &quot;marca&quot;, seguido de cero o más caracteres
   con la propiedad &quot;marca&quot;, y trata la secuencia como un grupo atómico (ver
   <a href="regexp.reference.onlyonce.php" class="xref">Subpatrones de una sola vez</a>). Los caracteres con la propiedad &quot;marca&quot; son típicamente acentos que afectan al carácter anterior.
  </p>
  <p class="para">
   Coincidir con caracteres por propiedad Unicode no es rápido, porque PCRE tiene
   que buscar una estructura que contiene datos para más de quince mil
   caracteres. Por eso las secuencias de escape tradicionales como
   <code class="literal">\d</code> y <code class="literal">\w</code> no usan propiedades Unicode
   en PCRE.
  </p>
 </div><?php manual_footer($setup); ?>