Expresiones regulares (RegEx) — explicadas de forma sencilla
Qué es una expresión regular, dónde la ofrece FlowBotCommander (título de ventana, Comprobar texto) y los diez caracteres que realmente necesitas — con ejemplos de juegos.
En dos lugares FlowBotCommander ofrece el tipo de coincidencia Expresión regular. No la necesitas — «contiene», «empieza por» y «termina en» bastan casi siempre. Pero cuando un texto cambia constantemente (números, horas, contadores de pestañas en el título de ventana) o el OCR confunde letras, un pequeño patrón te saca del apuro. Este artículo explica exactamente tanto RegEx como necesitas para ello.
¿Qué es una expresión regular?
Una expresión regular (RegEx para abreviar) es un patrón que describe cómo puede ser un texto — en vez
de una palabra fija. «Contiene Oro» solo coincide con la palabra Oro. El patrón Oro: \d+ coincide con
«Oro: 5», «Oro: 120», «Oro: 99999» — cualquier número tras «Oro: ».
Las letras y cifras normales se representan a sí mismas en el patrón. Solo unos pocos caracteres especiales tienen significado:
| Carácter | significa | Ejemplo | coincide con |
|---|---|---|---|
. |
un carácter cualquiera | L.vel |
Level, Lövel, L3vel |
\d |
una cifra 0–9 | Lv \d |
Lv 1, Lv 7 |
+ |
lo anterior una o más veces | \d+ |
5, 12, 99999 |
* |
lo anterior cero o más veces | Oro *\d+ |
Oro5, Oro 5, Oro 5 |
? |
lo anterior opcional (0 o 1 vez) | Lv\.? \d+ |
Lv 3, Lv. 3 |
^ |
inicio del texto | ^Victoria |
«¡Victoria!» — no «Sin victoria» |
$ |
fin del texto | Editor$ |
«Doc – Editor» |
[abc] |
uno de estos caracteres | Lv[. :] |
Lv. / Lv: / Lv␣ |
[0-9] |
un carácter del rango | [1-3] |
1, 2 o 3 |
a|b |
a o b | Victoria|Victory |
Victoria o Victory |
\. |
un punto real (en vez de «carácter cualquiera») | 1\.5 |
1.5 — no 1x5 |
Los caracteres especiales que quieres literalmente (. + * ? ( ) [ ] | $ ^) llevan una barra
invertida delante: \. \+ \(. Mayúsculas y minúsculas no importan en FlowBotCommander — victoria
coincide también con «VICTORIA».
Dónde encuentras RegEx en FlowBotCommander
1. Título de ventana — tipo de coincidencia «Expresión regular»
En Inicio (tipo de coincidencia global), Cambiar fuente de imagen, Traer ventana al frente, Mover/Cambiar tamaño de ventana y los nodos de overlay eliges cómo se compara el título de ventana (ver Ventana y fuente de imagen). Casi siempre basta contiene. Necesitas RegEx cuando dos ventanas se llaman parecido:
| Situación | Patrón | Explicación |
|---|---|---|
| Solo la pestaña del navegador con el juego, no la de la wiki | ^Clicker Heroes |
el título debe empezar por «Clicker Heroes» |
| El título alterna entre «Juego (1)», «Juego (2)» … | ^Juego \(\d+\)$ |
paréntesis literales, un número en medio |
| Exactamente «Editor» al final, da igual lo de antes | Editor$ |
el título termina en Editor |
| Cliente inglés o alemán | Inventory|Inventar |
uno de los dos |
2. Comprobar texto — modo «Expresión regular»
El nodo de condición Comprobar texto compara un texto (casi siempre de Leer texto (OCR)) con tu patrón y entrega verdadero o falso en la salida Resultado — que conectas a una Bifurcación (ver Bucles y condiciones). Ejemplos:
| Quieres saber … | Patrón | coincide p. ej. con |
|---|---|---|
| ¿Hay algún número en el texto? | \d+ |
«Oro 250» |
| ¿Es un número desde 100 (tres o más cifras)? | \d{3,} |
100, 2500 — no 99 |
| ¿Terminó el combate — en cualquier idioma? | Victoria|Victory|Derrota|Defeat |
«VICTORY!» |
| ¿Corre una cuenta atrás (mm:ss)? | \d\d:\d\d |
«02:59» |
| ¿Pone «Level» más un número aunque el OCR se coma el punto? | L[ev]*\.? *\d+ |
«Lv. 5», «Lvl 5», «Level 5» |
Para números rara vez necesitas RegEx: para «Oro ≥ 50» usa mejor Número desde texto (extrae el primer número del texto) y luego Comparar número — legible sin patrón. RegEx merece la pena para palabras, formatos y «cualquiera de estos».
Atrapar errores del OCR
El reconocimiento de texto lee «Lv. 1» a menudo como «L"; 1» o «0» como «O» (ver Leer texto (OCR)). En vez de mover la región por décima vez, haz el patrón tolerante:
- Letras confundidas como conjunto:
[O0]coincide con O y 0,[Il1]con I, l y 1. - Hacer opcionales los caracteres inseguros:
Lv\.? ?\d+permite punto y espacio — o no. - Comprobar solo la parte segura: en vez de «¡Listo para el combate!» basta
Listo.
Cómo probar un patrón
- Crea un nodo Comprobar texto, modo Expresión regular, escribe el patrón.
- Conecta como entrada una variable con un texto de ejemplo (o directamente el nodo OCR).
- Inicia el bot con F5 y mira en el registro: el nodo escribe «Text-Prüfung ⇒ True» o «False».
- Construye el patrón paso a paso: primero
Oro, luegoOro \d, luegoOro \d+— así ves de inmediato qué parte no coincide.
Si no funciona: un patrón inválido (p. ej. un paréntesis abierto () hace que el nodo evalúe siempre
falso — sin mensaje de error. Causas más frecuentes: punto sin barra invertida (1.5 coincide también con
«125»), + olvidado (\d coincide solo con una cifra), espacios en el texto que faltan en el patrón. En
caso de duda, empieza con contiene y una palabra corta — RegEx solo si no basta.