2011-08-04 10 views
7

tengo esta línea en un script Lua que bloquee el software cada vez que:No se puede usar por ciento (%) en un patrón Lua

fmt_url_map = string.gsub(fmt_url_map, '%2F','/') 

quiero reemplazar todas las apariciones de %2F ocurrencias en un texto a /. Si elimino el%, no se bloquea.

¿Qué estoy haciendo mal?

Respuesta

12

% es un símbolo especial en los patrones de Lua. Se usa para representar ciertos conjuntos de caracteres (llamados clases de caracteres). Por ejemplo, %a representa cualquier letra. Si quiere, literalmente, hacer coincidir %, necesita usar %%. Consulte this section del Manual de referencia de Lua para obtener más información. Sospecho que estás teniendo problemas porque %F no es una clase de personaje.

+0

Esas son expresiones no regulares; son patrones. Hay una gran diferencia entre ellos, y la documentación de Lua nunca los llama regex. –

+0

Tienes razón, mi error. Sigo olvidando que Lua carece de un operador de alternancia en los patrones. He editado mi respuesta. – Alex

6

tiene que escapar del '%' con otro '%'

fmt_url_map = string.gsub(fmt_url_map, '%%2F','/') 
Cuestiones relacionadas