¿Qué es el operador de alternancia en los patrones de Lua?
Frecuentes
Visto 3,818 veces
9
En expresiones regulares, |
se utiliza para la alternancia. ¿Cuál es el carácter correspondiente en los patrones Lua?
3 Respuestas
16
Primero, tenga en cuenta que Lua . no son expresiones regulares; son su propio lenguaje de coincidencia más simple (con diferentes ventajas e inconvenientes).
Según la especificación a la que he vinculado anteriormente, y por esta respuesta, no hay operador de alternancia en un patrón Lua. Para obtener esta funcionalidad, deberá usar una construcción Lua más poderosa (como LPEG o con una Biblioteca Lua Regex).
contestado el 23 de mayo de 17 a las 12:05
Complementaré esta respuesta perfectamente buena diciendo que a veces puede salirse con la suya sin usar LPEG o Lua Regex; un simple 'o' podría ser el truco: if s:match(a) or s:match(b) then ...
- kikito
a menudo también puede salirse con la suya con una coincidencia más general y activar el resultado...: local word = s:match("%w+") if word =="foo" or word == "bar" then.... else ....... end
- animador
Llegué a esta pregunta desde la perspectiva de Arduino Regexp (que se basa en patrones Lua). Esperaba que esta respuesta incluyera una solución alternativa que pudiera portar. - Michael Molter
1
Lua no tiene alternancias en patrones que no puedes usar (test1
|test2
). Solo puedes elegir entre varios personajes como [abcd]
coincidirá a
, b
, c
or d
.
Respondido 19 Feb 20, 13:02
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas lua lua-patterns or haz tu propia pregunta.
Vea también ¿Lua string.match usa expresiones regulares irregulares? - Phrogz