Python:
একটি নিদিষ্ট প্যাটার্নের সাথে মিলে যাওয়া অক্ষরগুলি মুছে ফেলা
কিভাবে:
import re
# উদাহরণ স্ট্রিং
text = "Hello, World! 1234"
# সব সংখ্যা মুছে ফেলুন
no_digits = re.sub(r'\d', '', text)
print(no_digits) # আউটপুট: "Hello, World! "
# বিরামচিহ্ন মুছে ফেলুন
no_punctuation = re.sub(r'[^\w\s]', '', text)
print(no_punctuation) # আউটপুট: "Hello World 1234"
# স্বরবর্ণ মুছে ফেলুন
no_vowels = re.sub(r'[aeiouAEIOU]', '', text)
print(no_vowels) # আউটপুট: "Hll, Wrld! 1234"
আমার কাস্টম ফাংশন
আমি এই ধরনের কাজ প্রায় সময় করে থাকি যে আমি একে এই সিম্পল delete()
ফাংশনে রিফ্যাক্টর করেছি। এটি doctests -এর একটি ভালো ডেমোস্ট্রেশনও বটে:
def delete(string: str, regex: str) -> str:
"""
>>> delete("Hello, world!", "l")
'Heo, word!'
>>> delete("Hello, world!", "[a-z]")
'H, !'
"""
return re.sub(regex, "", string)
গভীর অনুসন্ধান
টেক্সটে নির্দিষ্ট প্যাটার্নের অক্ষরগুলো মুছে ফেলার প্র্যাকটিসটি কম্পিউটার বিজ্ঞানে গভীর মূল নিয়েছে, যা sed
এবং grep
এর মতো প্রাথমিক Unix সরঞ্জামগুলো থেকে উদ্ভূত। পাইথনে, re
মডিউলটি এই ক্ষমতাটি প্রদান করে, রেগুলার এক্সপ্রেশনস ব্যবহার করে—একটি শক্তিশালী এবং বহুমুখী টুল টেক্সট প্রসেসিংয়ের জন্য।
re
মডিউলের বিকল্পগুলি অন্তর্ভুক্ত:
- সাধারণ কারণে
replace()
এর মতো স্ট্রিং মেথড। - জটিল প্যাটার্ন এবং উন্নত Unicode সমর্থনের জন্য
regex
এর মতো থার্ড-পার্টি লাইব্রেরিগুলি।
যখন আপনি re.sub()
ব্যবহার করেন, পাইথন ইন্টারপ্রিটারটি প্যাটার্নটিকে একগুচ্ছ বাইটকোডে কম্পাইল করে, যা ইনপুট টেক্সটে সরাসরি প্যাটার্ন-ম্যাচিং পারফর্ম করে এমন একটি স্টেট মেশিন দ্বারা প্রক্রিয়া করা হয়। বড় স্ট্রিং বা জটিল প্যাটার্নের জন্য এই অপারেশনটি রিসোর্স-ইনটেনসিভ হতে পারে, তাই বিগ ডাটা প্রসেসিংয়ের জন্য পারফরম্যান্স বিবেচনা অত্যন্ত জরুরি।
আরও দেখুন
- পাইথন
re
মডিউল ডকুমেন্টেশন: পাইথনে রেগুলার এক্সপ্রেশনসের অফিসিয়াল ডক্স। - Regular-Expressions.info: রেগুলার এক্সপ্রেশনসের একটি সম্পূর্ণ গাইড।
- রিয়েল পাইথন টিউটোরিয়াল অন রেজেক্স: পাইথনে রেগুলার এক্সপ্রেশনসের বাস্তব দুনিয়ার প্রয়োগ।