忽略Lua模式中的[^\\]部分

忽略Lua模式中的[^\\]部分

我想找到char $使用lua功能,但前提是前面沒有\char char $。為此,我創建了模式:

([^\\]?)%$

然而,Lua 忽略了我的模式的第一部分,只找到%$.請幫我解決我的問題。

是的,我知道 lua 有一個非常糟糕的模式解析器,但我希望我能找到$它是否是該行的第一個字符,或者是否之前沒有\。非常感謝您的幫忙。

答案1

你的問題很不清楚,這裡沒有涉及正規表示式(Lua模式與正規表示式完全不同)

但我認為您正在尋找類似的東西,它會列印一個包含\$and的字串,$然後用\$仍然完整但所有未加引號的$替換來列印它。

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!!!

相關內容