Las expresiones regulares son caracteres que se combinan de acuerdo con un patrón específico (sintaxis) y que se pueden utilizar para realizar búsquedas avanzadas Buscar y/o reemplazar. La implementación de expresiones regulares utiliza una sintaxis de patrones de expresiones regulares ECMAScript.
Observar la barra de estado para ver si hay expresiones regulares no válidas o si la cadena de búsqueda no produce ninguna coincidencia. Usar el Expression builder para crear patrones válidos.
![]() |
Activar el icono Usar expresiones regulares en el cuadro de diálogo Buscar |
Los caracteres especiales del patrón son caracteres (o secuencias de caracteres) que tienen un significado especial cuando aparecen en una expresión regular, ya sea para representar un carácter difícil de expresar en una cadena o para representar una categoría de caracteres. Cada uno de estos caracteres de patrón especiales se corresponde en la secuencia de destino con un único carácter (a menos que un cuantificador especifique lo contrario).
Sintaxis |
Descripción |
Ejemplo |
---|---|---|
\w |
Cualquier carácter alfanumérico o subrayado |
|
\W |
Cualquier carácter que no sea alfanumérico o subrayado |
|
\d |
Cualquier carácter numérico |
|
\D |
Cualquier carácter que no sea un carácter numérico |
|
\s |
Cualquier carácter de espacio, tabulación o fin de línea (CR)(LF) |
|
\S |
Cualquier carácter que no sea un espacio, un tabulador o un carácter de fin de línea (CR)(LF) |
|
\t |
Tabulador |
|
\r\n |
Caracteres de fin de línea En el editor ST, las líneas terminan en "\r\n" (un retorno de carro seguido de una nueva línea). Estos caracteres no son visibles, pero están presentes en el editor ST y se puede realizar una búsqueda sobre ellos. Véase la opción: Mostrar fin de la línea -> |
|
|
Cualquier carácter individual, incluidos caracteres de espacio, caracteres de tabulación y caracteres de línea (CR)(LF) |
|
\ |
Los siguientes caracteres especiales que se utilizan en las expresiones regulares deben escaparse con la \ (barra invertida) si se desea buscarlos como texto: ^ $ \ . * + ? ( ) [ ] { } | No es posible escapar los caracteres que forman una de las secuencias de caracteres especiales indicadas anteriormente. |
|
[class] |
El carácter objetivo forma parte de la clase de caracteres (ver clases de caracteres más adelante) |
|
[^class] |
El carácter objetivo no forma parte de la clase de caracteres (ver clases de caracteres más adelante) |
|
Los cuantificadores siguen un carácter o un carácter especial de patrón. Pueden modificar el número de veces que un carácter se repite en la coincidencia:
Cuantificador |
Número de coincidencias |
Ejemplo |
---|---|---|
+ |
1 o más |
|
* |
0 o más |
|
? |
(0 - 1) |
|
{int} |
Exactamente el número definido por int |
|
{int,} |
El número definido por int o más |
|
{min,max} |
El número entre min (mínimo) y max (máximo) |
|
Por defecto, todos estos cuantificadores son codiciosos (es decir, toman el mayor número posible de caracteres que cumplan la condición). Este comportamiento puede cambiarse a no codicioso (es decir, tomar el menor número posible de caracteres que cumplan la condición) añadiendo un signo de interrogación (?) después del cuantificador.
Cuantificador |
Número de coincidencias |
Ejemplo |
---|---|---|
+? |
1 o más caracteres, búsqueda no codiciosa |
Patrón de búsqueda: Texto de ejemplo: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Resultado de la búsqueda: 'abc' y 'ABC' Se encuentra el menor número posible de caracteres entre la primera comilla simple y la siguiente comilla simple. |
+ |
1 o más caracteres, búsqueda codiciosa |
Patrón de búsqueda: Texto de ejemplo: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Resultado de la búsqueda: 'abc'; sVar2 := 'ABC'; sVar3 := '' Se encuentra el mayor número posible de caracteres entre la primera comilla simple y la siguiente comilla simple. |
*? |
0 o más caracteres, búsqueda no codiciosa |
Patrón de búsqueda: Texto de ejemplo: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Resultado de la búsqueda: 'abc' y 'ABC' y '' |
* |
0 o más caracteres, búsqueda codiciosa |
Patrón de búsqueda: Texto de ejemplo: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Resultado de la búsqueda: 'abc'; sVar2 := 'ABC'; sVar3 := '' |
Los grupos permiten aplicar cuantificadores a una secuencia de caracteres (en lugar de a un solo carácter).
Grupo de caracteres |
Descripción |
Ejemplo |
---|---|---|
(subexpresión) |
Captura los caracteres que representan la subexpresión en la secuencia de destino y los guarda como una subcoincidencia. Cada subcoincidencia está numerada según el orden de aparición de su paréntesis de apertura (la primera subcoincidencia es la referencia inversa número 1, la segunda es la referencia inversa número 2, y así sucesivamente...). Este número de referencia inversa se puede reutilizar en la búsqueda o en el campo sustitución. |
(\d) es la subexpresión del primer dígito encontrado que crea la primera referencia inversa (N=1). Esta referencia inversa se utiliza con \1 para identificar el mismo contenido que se encuentra en la referencia inversa. |
(?:subexpresión) |
Define un grupo que no captura. |
En este caso, con |
\number |
Define una referencia inversa que permite identificar posteriormente en la misma expresión regular una subexpresión previamente encontrada. |
Ejemplo 1: Patrón de búsqueda: Explicación del patrón de búsqueda:
|
También se pueden utilizar referencias inversas en la cadena de sustitución. |
Ejemplo 2: Patrón de búsqueda: Patrón de sustitución: El resultado con referencia inversa es, p. ej., 3: iCount3 es sustituido por iValue3 |
Las aserciones especifican una posición en la cadena donde debe producirse una coincidencia. Cuando se utiliza una aserción en la expresión de búsqueda, el motor de expresiones regulares no avanza por la secuencia destino ni consume caracteres; solo busca una coincidencia en la posición especificada.
Grupo de caracteres |
Descripción |
Ejemplo |
---|---|---|
\b |
Límite de palabra |
|
\B |
No un límite de palabra |
|
^ |
Inicio de la línea |
Consejo Al pulsar la tecla de inserción <^> seguida de una vocal, por ejemplo, a, e, i, o, la inserción se interpretará como un acento circunflejo, es decir, â, ê, î, ô, û. Pulsar <^> seguido de un espacio para evitarlo. |
$ |
Final de la línea |
|
(?=subexpresión) |
Lookahead positivo Los caracteres que siguen a la aserción deben coincidir con la subexpresión, pero no se consumen caracteres. |
|
(?!subexpresión) |
Lookahead negativo Los caracteres que siguen a la aserción no deben coincidir con la subexpresión. No se consumen caracteres. |
|
Un patrón puede incluir diferentes alternativas:A
Carácter |
Descripción |
Ejemplo |
---|---|---|
| |
Separador que delimita dos patrones o subexpresiones alternativos. |
|
Para utilizar varios patrones alternativos en una expresión regular, separarlos con el operador de separación (|): La expresión regular coincidirá si cualquiera de las alternativas coincide y también en cuanto lo haga una.
Las subexpresiones (en grupos o aserciones) también pueden utilizar el operador de separación para separar diferentes alternativas.
Una clase de caracteres define un conjunto de caracteres que va entre corchetes [ ].
El objeto de expresión regular intenta hacer coincidir toda la clase de caracteres con un único carácter de la secuencia destino (a menos que un cuantificador especifique otra cosa).
La clase de caracteres puede contener cualquier combinación de:
Tipo |
Descripción |
Ejemplo |
---|---|---|
Caracteres individuales |
Cualquier carácter especificado se considera parte de la clase (excepto los caracteres especiales - (guión), [ (corchete izquierdo) y ] (corchete derecho). Todos los caracteres de patrón especiales, como \t, \d, etc., también pueden usarse dentro de una especificación de clase de caracteres. |
|
Rango |
Colocar el - (guión) entre dos caracteres válidos para especificar un rango. |
|
Caracteres escapados |
Los caracteres -]\^ tienen un significado especial en las definiciones de clase de caracteres. Para tratar estos caracteres como caracteres normales, añadir una barra invertida antes de los caracteres para suprimir su significado especial. |
|