রেগুলার এক্সপ্রেশন ব্যবহার করা

TypeScript:
রেগুলার এক্সপ্রেশন ব্যবহার করা

কীভাবে:

চলুন TypeScript এর মাধ্যমে দেখা যাক যে common tasks এর জন্য রেজেক্স কীভাবে ব্যবহৃত হয়।

// একটি ইমেইল অ্যাড্রেসের জন্য রেজেক্স প্যাটার্ন সংজ্ঞায়িত করা
const emailPattern = /\S+@\S+\.\S+/;

// একটি স্ট্রিং ইমেইল প্যাটার্নের সাথে ম্যাচ করে কিনা টেস্ট করা
const email = "[email protected]";
console.log(emailPattern.test(email)); // আউটপুট: true

// একটি স্ট্রিংয়ের মধ্যে ডিজিটস খুঁজে প্রতিস্থাপন করা
const replaceDigits = "Item 25 costs $30".replace(/\d+/g, '#');
console.log(replaceDigits); // আউটপুট: "Item # costs $#"

// ক্যাপচার গ্রুপ ব্যবহার করে একটি স্ট্রিং থেকে নির্দিষ্ট অংশ এক্সট্র্যাক্ট করা
const data = "April 10, 2021";
const datePattern = /(\w+) (\d+), (\d+)/;
const [, month, day, year] = datePattern.exec(data) || [];
console.log(month, day, year); // আউটপুট: "April" "10" "2021"

গভীরে গমন

1950 সালের দিকে, গণিতজ্ঞ স্টিফেন ক্লিন রেগুলার ভাষাগুলি প্রতিনিধিত্ব করার একটি মডেল হিসেবে রেগুলার এক্সপ্রেশনগুলির বর্ণনা দিয়েছিলেন, যা পরে কম্পিউটার বিজ্ঞানে অপরিহার্য হয়ে ওঠে। সময়ের সাথে সাথে, রেজেক্স টেক্সট নিয়ে কাজ করার জন্য প্রোগ্রামিং-এ সর্বজনীন হয়ে উঠেছে।

যদিও রেজেক্স স্ট্রিং অপারেশনের জন্য একটি সুইস আর্মি ছুরির মতো, তবে এর বিকল্প নেই এমন নয়। কাজের জটিলতার উপর নির্ভর করে, কখনও কখনও স্ট্রিং মেথড যেমন includes(), startsWith(), endsWith(), অথবা এমনকি একটি লাইব্রেরি দিয়ে পার্সিং করা ভালো হতে পারে। যেমন, একটি জটিল JSON স্ট্রিং রেজেক্স ব্যবহার করে পার্স করা একটি দুঃস্বপ্ন হতে পারে—এর পরিবর্তে একটি JSON পার্সার ব্যবহার করুন।

বাস্তবায়ন সম্পর্কে বলতে গেলে, জাভাস্ক্রিপ্ট এবং TypeScript এ রেজেক্স ECMAScript ভাষা স্পেসিফিকেশন অনুসারে নির্ধারিত হয়। ভেতরে ভেতরে, এন্জিন দক্ষভাবে প্যাটার্ন মিলানোর জন্য স্টেট মেশিন ব্যবহার করে। মনে রাখা দরকার যে রেজেক্স অপারেশন পারফরমেন্সের দিক থেকে ব্যয়বহুল হতে পারে, বিশেষত যদি প্যাটার্ন দুর্বলভাবে লিখা হয়— “ক্যাটাস্ট্রফিক ব্যাকট্র্যাকিং” এর জন্য সতর্ক থাকুন।

আরও দেখুন

  • রেগুলার এক্সপ্রেশনস সম্পর্কে MDN ওয়েব ডকুমেন্টস: MDN রেগুলার এক্সপ্রেশনস
  • Regex101: রেজেক্স প্যাটার্ন টেস্ট এবং ডিবাগ করার জন্য একটি টুল Regex101
  • গভীর বোঝার জন্য “মাস্টারিং রেগুলার এক্সপ্রেশনস” বই: O’Reilly