Игнорировать часть [^\\] в шаблоне Lua

Игнорировать часть [^\\] в шаблоне Lua

Я хочу найти с помощью lua-функций, но только если перед char char $нет . Для этого я создаю шаблон:\char $

([^\\]?)%$

Однако Lua игнорирует первую часть моего шаблона и находит только %$. Пожалуйста, помогите мне решить мою проблему.

Да, я знаю, что у lua очень плохой парсер шаблонов, но я надеюсь, что смогу узнать, $является ли это первым символом строки или его не было \до этого. Большое спасибо за помощь.

решение1

Ваш вопрос очень неясен, и здесь не задействованы регулярные выражения (шаблоны Lua существенно отличаются от регулярных выражений).

Но я думаю, что вы ищете что-то вроде этого, что печатает строку, содержащую \$и , $а затем печатает ее с \$по-прежнему нетронутой, но замененной без кавычек $.

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

print(z)

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

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

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

print(newz)

выполнение этого с помощью texluaсоздает вывод терминала

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

Связанный контент