স্ট্রিং থেকে উদ্ধৃতি মুছে ফেলা

Lua:
স্ট্রিং থেকে উদ্ধৃতি মুছে ফেলা

কিভাবে:

এখানে লুয়াতে কিভাবে উদ্ধৃতিচিহ্ন গুলোকে পার্শ্বে ঠেলে দেয়া যায়:

local function remove_quotes(str)
  return (str:gsub("^%p(.*)%p$", "%1"))
end

print(remove_quotes('"Hello, World!"'))     -- Hello, World!
print(remove_quotes("'Goodbye, Quotes!'"))  -- Goodbye, Quotes!

ব্যঙ্গ! সেই উদ্ধৃতিচিহ্নগুলি মুছে গিয়েছে যেন ড্রায়ারের মধ্যে মোজা।

গভীর ডুব

লোকেরা স্ট্রিং থেকে উদ্ধৃতিচিহ্ন মুছে ফেলার কাজ করছে যখন থেকে ভাষাগুলো টেক্সট নিয়ে কাজ করতে পারে, যা বলতে গেলে চিরকালের জন্য। লুয়াতে, gsub ফাংশন ভারী কাজটি করে, নির্দিষ্ট নমুনা গুলি ব্যাবহার করে উদ্ধৃতিচিহ্ন কে কেটে ফেলার জন্য। বিকল্প পথ? অবশ্যই, আপনি যেই ভাষা রেজেক্স সাপোর্ট করে সেখানে রেজেক্স ব্যবহার করতে পারেন, অথবা নিজের একটি লুপ লিখতে পারেন যা প্রতিটি ক্যারেক্টারের মধ্যে দিয়ে চলে (হাঁচি, কিন্তু হ্যাঁ, এটা আপনার সময়)।

লুয়ার প্যাটার্ন ম্যাচিং আপনাকে একটি পুরো লাইব্রেরি আমদানি ছাড়াই রেজেক্স-লাইট অভিজ্ঞতা দেয়। ক্যারেট (^) এবং ডলার সাইন ($) যথাক্রমে স্ট্রিংয়ের শুরু এবং শেষ ম্যাচ করে; %p যে কোনো বিরামচিহ্ন ক্যারেক্টারকে ম্যাচ করে। শুরু এবং শেষের বিরামচিহ্ন ছাড়ানোর পর, আমরা বাকি সবকিছু এর সাথে (.*), দিয়ে ধরে নিই এবং " %1" ব্যবহার করে পুরো ম্যাচ এর সাথে সেই ধরানো গ্রুপটি প্রতিস্থাপন করি।

মনে রাখবেন লুয়ার প্যাটার্ন ম্যাচিং পূর্ণ-বিকশিত রেজেক্স ইঞ্জিনের মত শক্তিশালী নয় – যেমন, এটা গণনা বা পিছনে যাওয়া সম্ভব করতে পারে না। এই সাধারণতত্ব আশীর্বাদ এবং অভিশাপ উভয়ই হতে পারে, এটা নির্ভর করে কোন উদ্ধৃতিচিহ্নগুলি আপনি নিয়ে কাজ করছেন এবং সেগুলি কোথায় লুকিয়ে রয়েছে।

আরও দেখুন

লুয়ার প্যাটার্ন ম্যাচিং নিয়ে আরও গভীরে যেতে পিআইএল (Programming in Lua) বই দেখুন: http://www.lua.org/pil/20.2.html

সম্পূর্ণ মার্জিততা যাচাই করতে, অন্যান্য ভাষায় এটা কিভাবে করা হয় তা দেখা শুরু করুন, প্রথমে Python-এর str.strip দিয়ে: https://docs.python.org/3/library/stdtypes.html#str.strip