मैं विंडोज सीई 6/7 चलाने वाले हमारे मोबाइल उपकरणों के लिए लुआ में एक grep उपयोगिता लिख रहा हूं, लेकिन मैंने केस-असंवेदनशील मिलान पैटर्न को लागू करने वाले कुछ मुद्दों में भाग लिया है। सबकुछ को अपरकेस (या निचले) में परिवर्तित करने का स्पष्ट समाधान चरित्र वर्गों के कारण बस इतना काम नहीं करता है।केस-असंवेदनशील लुआ पैटर्न-मिलान
एकमात्र अन्य चीज जिसे मैं सोच सकता हूं वह पैटर्न में खुद को अपरकेस में परिवर्तित कर रहा है।
यहाँ मैं अब तक है:
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
मैं स्वीकार करने के लिए कितनी देर तक यह भी है कि अब तक प्राप्त करने के लिए ले लिया नफरत है, और मैं अभी भी तुरंत देख सकते हैं वहाँ से भाग निकले प्रतिशत जैसी चीजों के साथ समस्याओं होने जा रहे हैं संकेत '%%'
मुझे लगा कि यह एक सामान्य आम मुद्दा होना चाहिए, लेकिन मुझे इस विषय पर अधिक प्रतीत नहीं होता है। क्या ऐसा करने के लिए कोई आसान (या कम से कम पूर्ण) तरीके हैं? मैं यहाँ पागल हो रहा हूं ... आपको लुआ गुरुओं की उम्मीद है कि मुझे ज्ञान मिल सकता है! इस तरह
बहुत बढ़िया। मैं एक खाली चित्रण कर रहा था। बीटीडब्ल्यू: आप 'पैटर्न: gsub' कह सकते हैं जैसा कि आपने कहा था' अक्षर: निचला'। आप यह भी कह सकते हैं '(' [% s% s] '): प्रारूप' लेकिन यह थोड़ा कमजोर है। – Mud
हाँ, 'string.format (...)' '('[% s% s]' से अधिक परिचित दिखता है): प्रारूप (...) ', लेकिन मुझे' पैटर्न: gsub (...) पसंद है बेहतर धन्यवाद। –
अविश्वसनीय। लेकिन एक सवाल ... यह '%% test' जैसे' %% [tT] est' में कुछ कैसे परिवर्तित नहीं करता है? क्या वह मैच छोड़ दिया गया है क्योंकि पिछले पुनरावृत्ति दोनों '%%' से मेल खाती? हो सकता है कि मेरा दिमाग आज थोड़ा तले हुए हो:/ – Nubbychadnezzar