El soporte de expresiones regulares en el editor web está limitado por la implementación del motor Lucene Regex.
Para usar expresiones regulares, habilite en la configuración del filtro. Una marca de verificación verde en el campo de entrada del filtro indica la validación exitosa de una expresión regular válida.
Las consultas son, por defecto, insensibles a mayúsculas. Habilite en la configuración del filtro para hacerlas sensibles a mayúsculas.
(asegurando que coincida solo con palabras completas y no con subcadenas dentro de palabras más largas) no está disponible.
La consulta ^abc$ funcionará como se espera, es decir, coincidiendo con todo el segmento, mientras que coincidirá con la subcadena abc en cualquier texto.
Limitaciones
La correcta sustitución de consultas parcialmente formateadas no es compatible, por ejemplo, buscar "Jméno: $1, Příjmení: $2." en el texto "\{b\>Nombre<}: Bob, \{biu\>Apellido\<biu\}: Dylan." se reemplazará como “{>Jméno: Bob, Příjmení: Dylan\<b\}”
Patrones no soportados
-
El ancla de límite de palabra
\bse utiliza para coincidir palabras exactas (funciona en el editor de escritorio). -
\\[1-9]- Referencias inversas (\1, \2, etc.), por ejemplo,(\w+)\s+\1para coincidir palabras duplicadas como “hola hola” -
\(\?=|\(\?!|\(\?<=|\(\?<!- Mirada hacia adelante y mirada hacia atrás, por ejemplo,gato(?=\.jpg)para coincidir “gato” solo en “gato.jpg” -
\(\?:- Grupos no capturantes, por ejemplo, (?:Sr|Sra|Srta)\. \w+,pero los grupos capturantes(Sr|Sra|Srta)\. \w+son compatibles y coinciden con nombres como “Sra. Smith”, “Sr. Brown” -
\(\?#- Comentarios en línea, por ejemplo,\d{4}-(?# año)\d{2}-(?# mes)\d{2}(?# día)para coincidir “2025-06-25” -
\(\?P<[^>]+>- Grupos de captura nombrados, por ejemplo, (?P<amount>\d+)\s?(?P<currency>USD|EUR)para coincidir “150 USD” y “99 EUR”
Punto (.) como un marcador de posición para cualquier carácter único
-
c.at: Concordancias: “chat”, “abrigo”. No concordancia: “gato”, “engañar” -
wa.ter: Concordancias: “camarero”, “desperdiciador”. No concordancia: “agua” -
s.ip: Concordancias: “saltar”, “barco”, “resbalar”. No concordancia: “sorber”, “desnudarse”
? - Cero o una ocurrencia
-
colou?r: Concordancias: “color”, “color” -
g?rain: Concordancias: “grano”, “lluvia” -
books?: Concordancias: “libro”, “libros”
.* - Cualquier número de caracteres (incluyendo ninguno)
-
h.*y: Concordancias: “feliz”, “historia”, “miel” -
sa.*d: Concordancias: “triste”, “arena”, “satisfecho” -
m.*ing: Concordancias: “mañana”, “reunión”, “mercadotecnia”
.+ - Debe aparecer al menos un carácter
-
pa.+er: Concordancias: “papel”, “pintor” -
a.+ed: Concordancias: “preguntado”, “aceptado”, “permitido”
* - Cero o más ocurrencias
-
go*al: Concordancias: “meta”, “goooooooal”
+ - Una o más ocurrencias
-
no+: Coincide con: “no”, “noooooo” -
$1+: Coincide con: “$1”, “$11”, “$111”
Se recomienda usar un patrón lo más específico posible, ya que los patrones abiertos pueden causar problemas de rendimiento en el editor.
Importante
El editor tiene un límite incorporado sobre cuán complejo puede ser un patrón regex. Los patrones que son demasiado amplios o que utilizan en gran medida comodines pueden fallar como regex inválidos. Para evitar esto:
-
Mantén los patrones cortos y específicos.
error-[0-9]{3}está bien;.*a.*b.*c.*d.*no lo está. -
Minimiza los comodines. Cada
.+o.*multiplica la complejidad interna. Prefiere clases de caracteres como[A-Z]+sobre.*cuando sea posible. -
Evita largas alternaciones con repetición. Un patrón como
(word1|word2|...|word20){2,}puede superar rápidamente el límite. Esto se amplifica cuando las alternativas incluyen múltiples palabras o puntuación, lo que añade a la complejidad del regex. -
Ancla un lado cuando sea posible.
^prefix.*es mucho más barato que.*middle.*.
Si el patrón es rechazado, intenta hacerlo más específico: comienza con un prefijo fijo más largo y reduce desde allí. Considera reducir el número de alternativas o manejarlas en patrones separados en lugar de combinar todo en un regex complejo.
Ejemplo:
Filtrando direcciones de correo electrónico:
-
Este patrón coincidirá con espacios y todas las palabras circundantes con potencialmente demasiados resultados:
.*@.* -
Para limitar los resultados a todas las direcciones de correo electrónico:
[\w.+\-]+@[\w.+\-]+ -
Para limitar los resultados solo a correos electrónicos .com:
[\w.+\-]+@[\w.+\-]\.com -
Para limitar los resultados a aquellos que tienen un dígito en las direcciones de correo electrónico:
[\w.+\-]*\d+[\w.+\-]*@[\w.\-]+
-
gato|perro: Coincide: “gato” y “perro” -
rojo|azul|verde: Coincide: “rojo”, “azul”, “verde”
-
[A-Z]+: Coincide con una o más letras mayúsculas en fila (una secuencia). -
[A-Z]{2,}: Coincide con cualquier serie de letras mayúsculas (útil para, por ejemplo, coincidir con acrónimos o cadenas escritas en letras mayúsculas) -
[0-9]{4}: Coincide con números de cuatro dígitos, por ejemplo. "1999", "2003", "1876" (también se encuentra dentro de una cadena de más de cuatro dígitos; para limitar los resultados, se debe usar la opción de palabras de coincidencia planeada para el futuro) -
[A-Za-z0-9]+: Coincide con cualquier cadena alfanumérica (¡hola! → hola coincidiría, pero ! no es parte de [A-Za-z0-9]; 100% → solo 100 coincidiría) -
([A-Za-z]+\d+|\d+[A-Za-z]+): Coincide estrictamente con una combinación de dígitos y letras, por ejemplo, “usuario123”, “Admin99”, “Win11”, “5g”, “1080p” -
[0-9]{2,4}-[A-Z]{2,3}: Coincide con matrículas, por ejemplo. “12-XY”, “9999-ABC”
-
\+[0-9]{1,2}: Coincide con “+40”, “+1” -
\{version: [0-9]+\}: Coincide con “{version: 12}”, “{version: 13}” -
C:\\[A-Za-z]+: Coincide con “C:\Users”, C:\Documents, “C:\Desktop”
Filtrado sin distinción entre mayúsculas y minúsculas VS Filtrado sensible a mayúsculas y minúsculas
-
Por defecto, el filtrado regex se implementará como sin distinción entre mayúsculas y minúsculas.
c.at: Coincide con: “chat”, “Chat”, “CHAT” y “coat”, “Coat”, “COAT” -
El filtrado regex se puede combinar con el filtro de UI
Los grupos de captura regex son reconocidos y la consulta completa se resalta, por ejemplo, s(e)g resaltará "seg". Los grupos de captura se pueden usar para reemplazo, por ejemplo, “Nombre: Bob” se puede buscar con Name: (.*?) y reemplazar usando una referencia inversa a Jméno: $1.” Las referencias inversas faltantes se manejan con gracia, es decir, la consulta Name: (.*?) con el reemplazo Jméno: $1, Título: $2 se reemplazará como Jméno: Bob, Título: $2.
Ejemplos para reemplazo de referencia inversa:
-
filtrar
(\d+),(\d+)y reemplazar$1.$2para normalizar separadores decimales (por ejemplo, de 5,6 o 35,949 a 5.6 o 35.949) -
filtrar
(\d+)\.(\d+)y reemplazar$1,$2para normalizar separadores decimales (por ejemplo, de 5.6 o 35.949 a 5,6 o 35,949) -
filtrar
(\d{4})-(\d{2})-(\d{2})y reemplazar$3/$2/$1para reformatear la fecha (por ejemplo, de 2025-06-05 a 05/06/2025) -
filtrar
ID-(\d{3,})y reemplazarTicket #$1para extraer el número del ticket (por ejemplo, de a ) -
filtrar
(cat|dog)y reemplazar$1-$1para duplicar el texto coincidente (por ejemplo, de cat a cat-cat y de dog a dog-dog) -
Grupo opcional: filtrar
Hola(, (\w+))?y reemplazarHola $1para transformar saludos reemplazando "Hola" antes de nombres o por sí solo (por ejemplo, de a y de a )