Ignorieren Sie den Teil [^\\] im Lua-Muster

Ignorieren Sie den Teil [^\\] im Lua-Muster

Ich möchte mithilfe von Lua-Features suchen , aber nur, wenn vor char $kein Zeichen steht . Dazu erstelle ich das Muster:\char $

([^\\]?)%$

Lua ignoriert jedoch den ersten Teil meines Musters und findet nur %$. Bitte helfen Sie mir, mein Problem zu lösen.

Ja, ich weiß, dass Lua einen sehr schlechten Musterparser hat, aber ich hoffe, ich kann herausfinden, $ob es sich entweder um das erste Zeichen der Zeile handelt oder ob es \vorher noch nicht vorhanden war. Vielen Dank für die Hilfe.

Antwort1

Ihre Frage ist sehr unklar und es handelt sich hier nicht um reguläre Ausdrücke (Lua-Muster unterscheiden sich deutlich von regulären Ausdrücken).

Aber ich glaube, Sie suchen nach etwas wie diesem, das eine Zeichenfolge mit und druckt \$und $diese dann mit dem \$noch intakten, aber vollständig durch Anführungszeichen $ersetzten Zeichen druckt.

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

print(z)

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

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

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

print(newz)

die Ausführung mit texluaerzeugt die Terminalausgabe

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

verwandte Informationen