Expresiones regulares de ICU
Una descripción de los detalles de la implementación de expresiones regulares de ICU.
Este contenido de referencia se extrae de ICU User Guide. El contenido describe los detalles de la implementación de expresiones regulares de ICU. Esta información resulta esencial si utiliza la función de expresión regular de Agent Builder, ya que los distintos lenguajes de programación implementan las expresiones regulares de forma ligeramente diferente.
| Carácter | Descripción |
|---|---|
\a |
Coincide con BELL, \u0007 |
\A |
Coincide con el principio de la entrada. Difiere de
^ en que \A no coincide tras una línea nueva dentro de la entrada. |
\b, fuera de [Set] |
Coincide si la posición actual es un límite de palabra.
Los límites aparecen en las transiciones entre caracteres de palabra (\w) y caracteres que no son palabra (\W), omitiendo las marcas de combinación. Para obtener más información sobre límites de
palabra, consulte el manual ICU Boundary Analysis. |
\b, dentro de [Set] |
Coincide con BACKSPACE, \u0008. |
\B |
Coincide si la posición actual no es una palabra. |
\cX |
Coincide con un carácter Control-X. |
\d |
Coincide con cualquier carácter de la categoría de Unicode general Nd (Número, Dígito decimal.) |
\D |
Coincide con cualquier carácter que no sea un dígito decimal. |
\e |
Coincide con ESCAPE, \u001B. |
\E |
Termina una secuencia de entrecomillado \Q ... \E. |
\f |
Coincide con FORM FEED, \u000C. |
\G |
Coincide si la posición actual está al final de la coincidencia anterior. |
\n |
Coincide con LINE FEED, \u000A. |
\N{UNICODE CHARACTER NAME} |
Coincide con el carácter especificado. |
\p{UNICODE PROPERTY NAME} |
Coincide con cualquier carácter que tenga la propiedad Unicode especificada. |
\P{UNICODE PROPERTY NAME} |
Coincide con cualquier carácter que no tenga la propiedad Unicode especificada. |
\Q |
Coloca comillas alrededor de todos los siguientes caracteres hasta
\E. |
\r |
Coincide con CARRIAGE RETURN, \u000D. |
\s |
Coincide con un carácter de espacio en blanco. El espacio en blanco se define como [\t\n\f\r\p{Z}]. |
\S |
Coincide con un carácter que no sea de espacio en blanco. |
\t |
Coincide con HORIZONTAL TABULATION, \u0009.
|
\uhhhh |
Coincide con el carácter que tiene el valor hexadecimal hhhh. |
\Uhhhhhhhh |
Coincide con el carácter que tiene el valor hexadecimal hhhhhhhh.
Se deben especificar exactamente ocho dígitos hexadecimales, aunque el punto de código
Unicode más largo sea \U0010ffff. |
\w |
Coincide con un carácter de palabra. Los caracteres de palabra son [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}]. |
\W |
Coincide con un carácter que no sea de palabra. |
\x{hhhh} |
Coincide con el carácter que tiene el valor hexadecimal hhhh.
Se pueden especificar entre uno y seis dígitos hexadecimales. |
\xhh |
Coincide con el carácter que tiene el valor hexadecimal de 2 dígitos hh. |
\X |
Coincide con un clúster Grapheme. |
\Z\ |
Coincide si la posición actual está al final de la entrada, pero antes del terminador de línea final, si existe. |
\z |
Coincide si la posición actual está al final de la entrada. |
\n |
Referencia anterior. Coincide con la coincidencia de grupo de captura número n. n debe ser un
número > 1 y < el número total de grupos de captura del patrón. Nota: Los valores de escape octal, como
\012, no reciben soporte en las expresiones regulares de ICU. |
[pattern] |
Coincide con cualquier carácter 1 del conjunto. Consulte UnicodeSet para obtener una descripción completa de lo que puede aparecer en el patrón |
. |
Coincide con cualquier carácter. |
^ |
Coincide con el principio de una línea. |
$ |
Coincide con el final de una línea. |
\ |
Coloca comillas alrededor del siguiente carácter.
Los caracteres que deben estar incluidos entre comillas para ser tratados como literales son
* ? + [ ( ) { } ^ $ | \ . / |
| Operador | Descripción |
|---|---|
| |
Alterne. A|B coincide con A o B.
|
* |
Coincide 0 o más veces. Coincide tantas veces como sea posible. |
+ |
Coincide 1 o más veces. Coincide tantas veces como sea posible. |
? |
Coincide con cero o 1 vez . Es preferible una. |
{n} |
Coincide exactamente n veces |
{n,} |
Coincide al menos n veces. Coincide tantas veces como sea posible. |
{n,m} |
Coincide entre n y m veces. Coincide tantas veces como sea posible, pero no más de m. |
*? |
Coincide 0 o más veces. Coincide tantas pocas veces como sea posible. |
+? |
Coincide 1 o más veces. Coincide tantas pocas veces como sea posible. |
?? |
Coincide con cero o 1 vez . Es preferible cero. |
{n}? |
Coincide exactamente n veces |
{n,}? |
Coincide al menos n veces, pero no más de lo necesario para una coincidencia de patrón general |
{n,m}? |
Coincide entre n y m veces. Coincide tan pocas veces como sea posible, pero no menos de n. |
*+ |
Coincide 0 o más veces. Coincide tantas veces como sea posible cuando se encuentra la primera, no se reintenta con menos aunque la comparación general no tenga éxito (coincidencia posesiva). |
++ |
Coincide 1 o más veces. Coincidencia posesiva. |
?+ |
Coincide con cero o 1 vez . Coincidencia posesiva. |
{n}+ |
Coincide exactamente n veces |
{n,}+ |
Coincide al menos n veces. Coincidencia posesiva. |
{n,m}+ |
Coincide entre n y m veces. Coincidencia posesiva. |
( ... ) |
Paréntesis de captura. Rango de entrada que ha coincidido con la subexpresión entre paréntesis si está disponible tras la coincidencia. |
(?: ... ) |
Paréntesis que no es de captura. Agrupa el patrón incluido, pero no proporciona captura para el texto coincidente. Es más eficiente que la captura de paréntesis. |
(?> ... ) |
Paréntesis de coincidencia atómica. La primera coincidencia de la subexpresión entre paréntesis es la única que se intenta. Si no
lleva a una coincidencia de patrón general, realice una copia de seguridad de la búsqueda de una coincidencia con una posición delante de
"(?>" |
(?# ... ) |
Comentario en formato libre (?# comment ).
|
(?= ... ) |
Aserción de búsqueda anticipada. Es verdadera si el patrón entre paréntesis coincide en la posición de entrada actual, pero no avanza la posición de entrada. |
(?! ... ) |
Aserción de búsqueda anticipada negativa. Es verdadera si el patrón entre paréntesis no coincide en la posición de entrada actual. No avanza la posición de entrada. |
(?<= ... ) |
Aserción de búsqueda con retrocesión. Es verdadera si el patrón entre paréntesis coincide con el texto que precede a la posición de entrada actual. El último
carácter de la coincidencia es el carácter de entrada antes de la posición actual. No modifica la posición de entrada. La longitud de cadenas posibles que coinciden con el patrón de búsqueda con retrocesión no debe ser ilimitada (sin operadores * o +.) |
(?<!...) |
Aserción de búsqueda con retrocesión negativa. Es verdadera si el patrón
entre paréntesis no coincide con el texto que precede la posición de entrada actual. El último
carácter de la coincidencia es el carácter de entrada antes de la posición actual. No modifica la posición de entrada. La longitud de cadenas posibles que coinciden con el patrón de búsqueda con retrocesión no debe ser ilimitada (sin operadores * o +.) |
(?ismx-ismx: ... ) |
Valores de distintivo. Evalúa la expresión entre paréntesis con los distintivos especificados habilitados o inhabilitados. |
(?ismx-ismx) |
Valores de distintivo. Cambia los valores de distintivo. Los cambios se aplican a la parte del patrón que sigue al valor. Por ejemplo,
(?i) cambia a una coincidencia que no es sensible a mayúsculas y minúsculas. |
Texto de sustitución
El texto de sustitución para operaciones de búsqueda y sustitución puede contener referencias a texto de grupo de captura de la búsqueda. Las referencias son de tipo $n, donde n es el número del grupo de captura.
| Carácter | Descripción |
|---|---|
$n |
El texto del grupo de capturas posicional n se sustituye por $n. n debe ser = 0, y no mayor que el número de
grupos de captura. Un símbolo $ que no va seguido de un dígito no tiene ningún significado especial, y se visualiza en el texto de sustitución como sí mismo, un símbolo $. |
\ |
Trata este carácter como un literal, suprimiendo cualquier significado especial. El signo de escape en barras inclinadas invertidas solo se necesita en texto de sustitución para '$' y '\', pero se puede utilizar en cualquier otro carácter sin efectos adversos. |
$@n |
El texto del grupo de captura n se sustituye por la expresión regular que ha coincidido con el grupo de captura n. n debe ser
>= 0 y no mayor que el número de grupos de captura. Un símbolo $@ que no va seguido de un dígito no tiene ningún significado especial, y se visualiza en el texto de sustitución como sí mismo, un símbolo $@. |
$#n |
El texto del grupo de captura coincidente n se sustituye por $#n. n debe ser >= 0, y no mayor que el
número de grupos de captura coincidentes. Un símbolo $# que no va seguido de un dígito no tiene ningún significado especial, y se visualiza en el texto de sustitución como sí mismo, un símbolo $#. |
Opciones de distintivo
Los siguientes distintivos controlan diversos aspectos de la coincidencia de expresión regular.
Los valores de distintivo se pueden especificar
en el momento que una expresión se compila en un objeto RegexPattern. O bien, pueden especificarse dentro del propio patrón utilizando las opciones de patrón
(?ismx-ismx).
| Distintivo (patrón) | Distintivo (constante de API) | Descripción |
|---|---|---|
i |
UREGEX_CASE_INSENSITIVE |
Si está definido, la coincidencia se realiza teniendo en cuenta mayúsculas y minúsculas. |
x |
UREGEX_COMMENTS |
Si está establecido, puede utilizarse un espacio en blanco y #comments dentro de patrones. |
s |
UREGEX_DOTALL |
Si está establecido, un signo "." en un patrón coincide con un terminador de línea en el texto de entrada. De forma predeterminada no es así.
Un par retorno de carro / salto de línea en texto se comporta como un terminador de una sola línea y coincide con un solo "." en un patrón de RE
|
m |
UREGEX_MULTILINE |
Controla el comportamiento de "^" y "$" en un patrón. De forma predeterminada, estos patrones solo coinciden a l principio y al final, respectivamente, del texto de entrada. Si este distintivo está establecido, "^" y "$" también coinciden al principio y al final de cada línea dentro del texto de entrada. |