Windows CE 6/7 çalıştıran mobil aygıtlarımız için Lua'da bir grep yardımcı programı yazıyorum, ancak büyük/küçük harf duyarlı olmayan eşleşme desenlerini uygulayan bazı sorunlarda çalışıyorum. Her şeyi büyük harfe dönüştüren açık çözüm (ya da daha düşük), karakter sınıflarından dolayı bu kadar kolay çalışmaz.Büyük/küçük harf duyarlı Lua desen eşlemesi
Düşünebildiğim tek diğer şey, modeldeki değişmezleri büyük harfe dönüştürmektir. İşte
Ben bugüne kadar ne var:function toUpperPattern(instr)
-- Check first character
if string.find(instr, "^%l") then
instr = string.upper(string.sub(instr, 1, 1)) .. string.sub(instr, 2)
end
-- Check the rest of the pattern
while 1 do
local a, b, str = string.find(instr, "[^%%](%l+)")
if not a then break end
if str then
instr = string.sub(instr, 1, a) .. string.upper(string.sub(instr, a+1, b)) .. string.sub(instr, b + 1)
end
end
return instr
end
ben bile o kadar olsun ne kadar sürdüğünü kabul etmekten nefret ediyorum ve hala kaçan yüzde gibi şeyler ile ilgili sorunlar olacaksa olan hemen görebilirsiniz '%%' belirtileri '
Bunun oldukça yaygın bir sorun olması gerektiğini düşündüm, ancak konuyla ilgili fazla bir şey göremiyorum. Bunu yapmak için daha kolay (veya en azından tamamlanmış) yollar var mı? Burada çıldırmaya başlıyorum ... Seni umut ediyorum Lua Gurus dışarıda beni aydınlatabilir! Böyle
Awesome. Boş çiziyordum. Btw: diyelim ki 'desen: gsub' diyebilirsiniz: Hatta ('[% s% s]'): format' diyebilirsiniz, ancak bu biraz tuhaftır. – Mud
Evet, 'string.format (...)' '('[% s% s]'): format (...)' dan daha tanıdık görünüyor, ancak ben 'pattern: gsub (...) 'daha iyi! Teşekkürler. –
İnanılmaz. Ama bir soru ... Bu, %% test gibi bir şeyi "%% [tT] est" olarak nasıl dönüştürmez? Bu eşleme atlandı mı, önceki yineleme hem '%%' ile eşleşecek miydi? Belki beynim bugün biraz kızardı:/ – Nubbychadnezzar