Ignora la parte [^\\] en el patrón Lua

Ignora la parte [^\\] en el patrón Lua

Quiero encontrar char $el uso de funciones de lua, pero solo si no hay ningún \carácter antes char $. Para esto creo el patrón:

([^\\]?)%$

Sin embargo, Lua ignora la primera parte de mi patrón y solo encuentra %$. Por favor ayúdenme a resolver mi problema.

Sí, sé que lua tiene un analizador de patrones muy malo, pero espero poder encontrar $si es el primer carácter de la línea o si no lo tiene \antes. Muchas gracias por la ayuda.

Respuesta1

Su pregunta no está muy clara y aquí no hay expresiones regulares involucradas (los patrones de Lua son bastante distintos de las expresiones regulares)

Pero creo que estás buscando algo como esto, que imprima una cadena que incluya \$y $luego la imprima con el \$texto todavía intacto pero sin comillas $reemplazado.

z="aaa \\$ $ x=1$"

print(z)

tmp=string.gsub(z,'\\%$', 'QUOTEDOLLAR')

tmp=string.gsub(tmp,'%$', '!!!')

newz=string.gsub(tmp,'QUOTEDOLLAR', '\\$' )

print(newz)

ejecutar esto con texluaproduce la salida del terminal

aaa \$ $ x=1$
aaa \$ !!! x=1!!!

información relacionada