রেগুলার এক্সপ্রেশন, যা সাধারণত রেজেক্স নামে পরিচিত, উন্নয়ন, সিস্টেম প্রশাসন এবং বিশাল পরিমাণে টেক্সট প্রক্রিয়াকরণের জগতে সবচেয়ে শক্তিশালী এবং বহুমুখী সম্পদগুলির মধ্যে একটি। তবে, অনেক ব্যবহারকারী এবং প্রোগ্রামার যারা প্রথমবারের মতো এটি ব্যবহার করছেন তাদের জন্য এর বাক্য গঠন রহস্যময় বা এমনকি অপ্রতিরোধ্য হতে পারে। Regex নিয়ম এবং প্যাটার্ন আয়ত্ত করার মাধ্যমে অতুলনীয় দক্ষতা এবং নমনীয়তার সাথে পাঠ্য অনুসন্ধান, ফিল্টারিং, যাচাইকরণ এবং রূপান্তর করা সম্ভব হয়।
আপনি কি কখনও ভেবে দেখেছেন কিভাবে আপনি আপনার আইটি প্রকল্পগুলিতে নথির মধ্যে জটিল প্যাটার্ন খুঁজে পেতে পারেন, ফর্ম যাচাই করতে পারেন, ডেটা রূপান্তর করতে পারেন, অথবা অনুসন্ধান প্রক্রিয়াগুলি স্বয়ংক্রিয় করতে পারেন? আপনি একজন ডেভেলপার, একজন সিসাদমিন, অথবা কেবল একজন কৌতূহলী ব্যবহারকারী, এই নিবন্ধটি আপনার জন্য। Regex নিয়ম এবং সকল ধরণের প্রেক্ষাপটে তাদের প্রয়োগের জন্য একটি সম্পূর্ণ, ব্যবহারিক এবং সর্বোপরি, স্পষ্ট নির্দেশিকার জন্য প্রস্তুত থাকুন।
রেজেক্স নিয়ম বা রেগুলার এক্সপ্রেশন কি?
রেগুলার এক্সপ্রেশন (Regex, ইংরেজিতে এর সংক্ষিপ্ত রূপের জন্য রেগুলার এক্সপ্রেশন) হল অক্ষরের ক্রম বা প্যাটার্ন যা অন্যান্য পাঠ্যের মধ্যে পাঠ্য খুঁজে বের করার, যাচাই করার বা হেরফের করার নিয়ম নির্ধারণ করতে সক্ষম। কল্পনা করুন আপনি নির্দিষ্ট বাক্যাংশ, নির্দিষ্ট ফর্ম্যাট (যেমন ইমেল, তারিখ, ফোন নম্বর), নির্দিষ্ট মানদণ্ড পূরণকারী নাম খুঁজছেন, অথবা আপনি প্রচুর পরিমাণে লেখার কিছু অংশ প্রতিস্থাপন করতে চান: এই সমস্ত ক্ষেত্রে, রেজেক্স হল আদর্শ হাতিয়ার.
মৌলিক ধারণা হল আমরা যে টেক্সটটি সনাক্ত করতে, যাচাই করতে বা পরিবর্তন করতে চাই তা যে প্যাটার্নের সাথে মিলিত হবে, তার একটি ধারাবাহিক প্রতীক, অক্ষর এবং বিশেষ অপারেটর দিয়ে বর্ণনা করুন।উদাহরণস্বরূপ, যদি আপনি একটি বাক্যাংশে সমস্ত সংখ্যা খুঁজে পেতে চান, তাহলে আপনি একটি সহজ প্যাটার্ন সংজ্ঞায়িত করতে পারেন যা "যেকোনো সংখ্যাসূচক অক্ষর" বলে (যেমন \d)। যদি আপনি আরও উন্নত কিছু চান, তাহলে আপনি "'কপি' দিয়ে শুরু এবং একটি সংখ্যায় শেষ হওয়া সমস্ত স্ট্রিং" এর মতো জটিল নিয়ম তৈরি করতে পারেন।
রেজেক্সের ইতিহাস এবং বিবর্তন
নিয়মিত অভিব্যক্তির জন্ম বিংশ শতাব্দীর মাঝামাঝি সময়ে, আনুষ্ঠানিক যুক্তি এবং স্বয়ংক্রিয় তত্ত্বের ক্ষেত্রে। এর প্রথম ব্যবহারিক ব্যবহার ছিল UNIX-ভিত্তিক সিস্টেমে, যেমন ইউটিলিটি সহ ed, , grep, কিন্তু y অজস্রপরবর্তীকালে, মানদণ্ড POSIX এর বাক্য গঠন প্রসারিত করে এবং এটিকে বিভিন্ন পরিবেশে অন্তর্ভুক্ত করে। পরবর্তীতে, ভাষা পার্ল রেজেক্সকে একটি নতুন স্তরে নিয়ে গেছে, নতুন বৈশিষ্ট্য যুক্ত করেছে এবং ডেভেলপার সম্প্রদায়ের মধ্যে সেগুলিকে জনপ্রিয় করেছে।
বর্তমানে, রেজেক্স বেশিরভাগ প্রোগ্রামিং ভাষায় তৈরি করা হয় (জাভাস্ক্রিপ্ট, পাইথন, জাভা, সি#, পিএইচপি, রুবি, ইত্যাদি), পাশাপাশি উন্নত টেক্সট এডিটর, অপারেটিং সিস্টেম, ওয়েব ফ্রেমওয়ার্ক এবং একাধিক কমান্ড-লাইন ইউটিলিটি। এটি রেজেক্স রুলসকে যেকোনো কম্পিউটিং প্রেক্ষাপটে টেক্সট প্রক্রিয়াকরণের জন্য সত্যিকার অর্থে একটি সার্বজনীন ভাষা করে তোলে।
রেজেক্সের নিয়মগুলি কীসের জন্য?
The রেজেক্স নিয়ম এগুলি কেবল অনুসন্ধানের জন্যই ব্যবহৃত হয় না, এগুলি যাচাই, নিষ্কাশন, রূপান্তর এবং কয়েক সেকেন্ডের মধ্যে আপনাকে বিশাল পরিমাণে ডেটা ফিল্টার বা পরিবর্তন করার অনুমতি দেয়।
- বড় লেখায় প্যাটার্ন খোঁজা: ম্যানুয়াল প্রচেষ্টা ছাড়াই ইমেল, URL, নাম, সংখ্যা, তারিখ এবং আরও অনেক কিছু খুঁজুন—এমনকি বিশাল ফাইল বা ডাটাবেসেও।
- ব্যবহারকারীর ইনপুট যাচাই করুন: সংরক্ষণ করার আগে একটি পাসওয়ার্ড প্রয়োজনীয়তা পূরণ করে কিনা, একটি ফোন নম্বর, অথবা একটি ইমেল ঠিকানা সঠিক কিনা তা পরীক্ষা করে।
- টেক্সট সম্পাদনা এবং প্রতিস্থাপন করুন: HTML ট্যাগ অপসারণ থেকে শুরু করে ডেটা ফর্ম্যাট স্বাভাবিককরণ পর্যন্ত, একটি টেক্সটের নির্দিষ্ট অংশ প্রতিস্থাপন করুন।
- স্বয়ংক্রিয় প্রক্রিয়া: খুব সুনির্দিষ্ট নিয়ম অনুসারে লগ ফিল্টার করুন, তালিকা রূপান্তর করুন, লগ ফাইল বিশ্লেষণ করুন, অথবা ফাইলগুলির নাম পরিবর্তন করুন।
রেজেক্সের মূলনীতি: মৌলিক ধারণা
রেজেক্স নিয়মগুলি আক্ষরিক অক্ষর এবং মেটাঅ্যাক্টরগুলির সংমিশ্রণে গঠিত। এই উপাদানগুলি বোঝা হল দরকারী প্যাটার্ন তৈরির ভিত্তি।
১. আক্ষরিক অক্ষর
একটি আক্ষরিক অক্ষর ঠিক সেই চরিত্রটিকে প্রতিনিধিত্ব করে যা আপনি অনুসন্ধান করতে চান। উদাহরণস্বরূপ, অভিব্যক্তিটি ঘর লক্ষ্যবস্তুর মধ্যে ঠিক সেই ক্রমটি, সেই ক্রমে, সনাক্ত করবে।
২. মেটাচ্যারেক্টার: রেজেক্সের শক্তি
মেটাঅ্যাক্টর হল বিশেষ প্রতীক যা নিয়মিত অভিব্যক্তির অর্থকে প্রসারিত করে, তাদের বহুমুখীতা এবং শক্তি দেয়। সবচেয়ে সাধারণগুলির মধ্যে রয়েছে:
- . বিন্দুটি লাইন ব্রেক ছাড়া অন্য যেকোনো অক্ষরকে প্রতিনিধিত্ব করে।
- [] বন্ধনীগুলি অনুমোদিত অক্ষরের ক্লাস বা সেট সংজ্ঞায়িত করে।
- ^ পরিধিটি একটি লাইন/শব্দের শুরুতে চিহ্নিত করতে পারে, অথবা, যদি এটি বন্ধনীতে আবদ্ধ থাকে, তাহলে একটি সেটের নেতিবাচকতা চিহ্নিত করতে পারে।
- $ ডলার প্রতীকটি একটি লাইন বা লেখার শেষ নির্দেশ করে।
- * তারকাচিহ্ন আপনাকে পূর্ববর্তী উপাদানের "শূন্য বা তার বেশি পুনরাবৃত্তি" অনুসন্ধান করতে দেয়।
- + যোগ চিহ্নটি "এক বা একাধিক পুনরাবৃত্তি" অনুসন্ধান করে।
- ? নির্দেশ করে যে পূর্ববর্তী উপাদানটি ঐচ্ছিক (শূন্য বা এককালীন)।
- () বন্ধনীগুলি একটি রাশির অংশগুলিকে কোয়ান্টিফায়ার প্রয়োগ করতে, উপগোষ্ঠী বের করতে বা বিকল্পগুলি সংজ্ঞায়িত করতে গ্রুপ করে।
- | উল্লম্ব বারটি একটি যৌক্তিক বিকল্প "অথবা" প্রতিনিধিত্ব করে।
- \ ব্যাকস্ল্যাশ নিম্নলিখিত অক্ষরের বিশেষ অর্থ এড়িয়ে যায় অথবা সংক্ষিপ্ত ক্রমগুলি প্রবর্তন করে (যেমন \d, \w, \s).
৩. কোয়ান্টিফায়ার: পুনরাবৃত্তি নিয়ন্ত্রণ করা
কোয়ান্টিফায়ার আপনাকে একটি অক্ষর, শ্রেণী বা গোষ্ঠী কতবার পুনরাবৃত্তি করা উচিত তা নির্ধারণ করতে দেয়:
- *: শূন্য বা তার বেশি পুনরাবৃত্তি।
- +: এক বা একাধিক বার।
- ?: একবার অথবা একেবারেই না (ঐচ্ছিক)।
- {n}: ঠিক n পুনরাবৃত্তি।
- {n,}: অন্তত n বার (সর্বোচ্চ নয়)।
- {n,m}: এর মধ্যে n y m পুনরাবৃত্তি।
৪. অক্ষর শ্রেণী এবং সংক্ষিপ্ত রূপ
ক্যারেক্টার ক্লাসগুলি আমাদের আরও সংকুচিত করতে সাহায্য করে যা আমরা অনুসন্ধান করতে চাই:
- [আজ]: যেকোনো ছোট হাতের অক্ষর।
- [এজেড]: বড় হাতের অক্ষর।
- [0-9]: যেকোনো অঙ্ক।
- [এবিসি]: অক্ষর a, b অথবা c।
- [^xyz]: যেকোনো অক্ষর বাদে x, i z.
- \d: দশমিক সংখ্যা ([0-9] এর সমতুল্য)।
- \D: যেকোনো চরিত্র যা না। একটি সংখ্যা হও।
- \w: শব্দের অক্ষর (অক্ষর, সংখ্যা, অথবা আন্ডারস্কোর; [a-zA-Z0-9_] এর সমতুল্য)।
- \W: যেকোনো অ-শব্দ অক্ষর।
- \s: ফাঁকা স্থান (স্থান, ট্যাব, লাইন বিরতি)।
- \S: একটি স্থান ছাড়া অন্য যেকোনো অক্ষর।
৫. অ্যাঙ্কর: টেক্সটের মধ্যে প্যাটার্ন স্থাপন করা
অ্যাঙ্করগুলি আপনাকে একটি লাইনের শুরুতে বা শেষে, অথবা শব্দের শুরুতে/শেষে প্যাটার্ন স্থাপন করতে দেয়।
- ^: লাইন বা টেক্সটের শুরু।
- $: লাইন বা লেখার শেষ।
- \b: শব্দ সীমানা (শুরু বা শেষ)।
- \B: শব্দবিহীন সীমানা বিন্দু (অভ্যন্তরীণ)।
রেজেক্স নিয়মের ব্যবহারিক উদাহরণ
এবার দেখা যাক কিভাবে এই নিয়মগুলি বাস্তব জীবনের পরিস্থিতিতে প্রযোজ্য, সহজ এবং উন্নত উভয় ক্ষেত্রেই, যাতে আপনি যা শিখেছেন তা দ্রুত বাস্তবে প্রয়োগ করতে পারেন।
- ইমেল যাচাই করুন: ^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$
- DNI নম্বরগুলি সনাক্ত করুন: \b\d{8}[- ]?[trwagmyfpdxbnjzsqvhlcke]?\b
- IP v4 ঠিকানা সনাক্ত করুন: ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?!$)|$)){4}$
- HTML ট্যাগ থেকে URL গুলি বের করুন:
- জাভাতে মন্তব্য করা লাইনগুলি সনাক্ত করুন: //[^\r\n]*[\r\n]
উন্নত যুক্তি এবং প্যাটার্ন কাস্টমাইজেশন
রেজেক্স আপনাকে গ্রুপ, অল্টারনেশন, রেফারেন্স এবং অ্যাডভান্সড কোয়ান্টিফায়ার একত্রিত করে জটিল প্যাটার্ন তৈরি করতে দেয়, যা আপনাকে খুব নির্দিষ্ট তথ্য ফিল্টার, যাচাই বা সনাক্ত করতে দেয়।
গোষ্ঠী এবং সমিতি
প্যাটার্নের কিছু অংশ বন্ধনীতে আবদ্ধ করে, আমরা একটি গ্রুপ তৈরি করি। এটি আমাদের সম্পূর্ণ গ্রুপে কোয়ান্টিফায়ার প্রয়োগ করতে, তথ্য বের করতে বা রেফারেন্স সাবপ্যাটার্নগুলি বের করতে দেয়।
উদাহরণস্বরূপ, অভিব্যক্তি ((মা)+খ) "mab" বা "mamab" এর সাথে মিলবে, কিন্তু "maab" এর সাথে মিলবে না। গ্রুপগুলি পরে ব্যবহার করে উল্লেখ করা যেতে পারে \1, \2, ইত্যাদি, একই রকম পুনরাবৃত্তিমূলক প্যাটার্ন খুঁজে বের করার জন্য আদর্শ।
বিকল্প (|): রেজেক্সে লজিক্যাল "অথবা"
উল্লম্ব বার | আপনাকে বিকল্পগুলি সংজ্ঞায়িত করতে দেয়: এই প্রতীক দ্বারা পৃথক করা যেকোনো প্যাটার্ন বৈধ হবে। উদাহরণস্বরূপ, (boy|girl) উভয় শব্দের সাথে মিলবে।
\ দিয়ে মেটাঅ্যাক্টরগুলি এড়িয়ে যান
ব্যাকস্ল্যাশ \ একটি মেটাচ্যারেক্টারের বিশেষ অর্থ নিরপেক্ষ করা বা সংক্ষিপ্ত ক্রমগুলি প্রবর্তন করা অত্যন্ত গুরুত্বপূর্ণ। উদাহরণস্বরূপ, “\.” একটি আক্ষরিক সময়কাল অনুসন্ধান করে, “\?” একটি প্রশ্নবোধক চিহ্নের জন্য, “\\” ব্যাকস্ল্যাশের জন্য, ইত্যাদি।
লোভী এবং অলস পরিমাপক
ডিফল্টরূপে, রেজেক্স কোয়ান্টিফায়ারগুলি লোভী: তারা যতটা সম্ভব টেক্সট নেয়। যোগ করা হচ্ছে ? এটি "অলস" তে পরিবর্তিত হয়, যা ন্যূনতম প্রয়োজনীয় জিনিসটি ধারণ করে।
উদাহরণস্বরূপ: কুকুর "perr" এবং "o" এর মধ্যে দীর্ঘতম স্ট্রিং খুঁজে পাবে, যখন কুকুর সর্বনিম্ন ক্যাপচার করবে।
দাবি এবং পর্যালোচনা
লুকআহেড এবং লুকবিহাইড অ্যাসারেন্স আপনাকে টেক্সট থেকে অক্ষর ব্যবহার না করেই "আগে" বা "পরে" একটি মিলের শর্ত যাচাই করতে দেয়।
- ইতিবাচক দৃষ্টিভঙ্গি: (?=প্যাটার্ন) বর্তমান অবস্থানের পরে "প্যাটার্ন" পাওয়া গেছে কিনা তা পরীক্ষা করুন।
- নেতিবাচক দৃষ্টিভঙ্গি: (?!প্যাটার্ন) "প্যাটার্ন" নিচে আছে কিনা তা পরীক্ষা করুন।
- ইতিবাচক/নেতিবাচক দৃষ্টিভঙ্গি: (?<=প্যাটার্ন) y (? তারা "পিছনে" একই কাজ করে।
বাস্তব জগতে রেজেক্সের ব্যবহারিক প্রয়োগ
রেজেক্স বিভিন্ন ধরণের ক্ষেত্র এবং দৈনন্দিন কাজে ব্যবহৃত হয়:
- ফর্ম যাচাইকরণ: ইমেল, ফোন নম্বর, নাম, শক্তিশালী পাসওয়ার্ড।
- লগ প্রক্রিয়াকরণ এবং সিস্টেম অডিটিং: লগ ফাইলগুলিতে প্যাটার্ন অনুসন্ধান করা, ত্রুটি এবং সতর্কতা বের করা।
- SEO এবং URL ব্যবস্থাপনা: .htaccess-এ URL পুনর্লিখন, প্যারামিটার ফিল্টার, অনুসন্ধান বিভাজন।
- বাল্ক টেক্সট সম্পাদনা: HTML ট্যাগ পরিষ্কার করুন, অপ্রয়োজনীয় স্থান অপসারণ করুন, স্প্রেডশিটে ডেটা স্বাভাবিক করুন, লিগ্যাসি কোড অভিযোজিত করুন।
- ওয়েব ডেভেলপমেন্ট এবং অটোমেশন: স্বয়ংক্রিয় পরীক্ষা, সার্ভার নিয়ম কনফিগারেশন, স্ক্র্যাপার ডেভেলপমেন্ট।
বিভিন্ন রেজেক্স স্বাদ এবং ইঞ্জিন
সমস্ত Regex বাস্তবায়ন একই ক্ষমতা সমর্থন করে না; ব্যবহৃত ভাষা, সরঞ্জাম বা ইঞ্জিনের উপর নির্ভর করে বিভিন্ন "স্বাদ" রয়েছে।
- পসিক্স: UNIX-ভিত্তিক আদিম বাক্য গঠন। Perl বা PCRE-এর তুলনায় কম বিস্তৃত।
- পার্ল/পিসিআরই: খুবই সম্পূর্ণ, তারা লুকআরাউন্ড, অ্যাডভান্সড রেফারেন্স, মডিফায়ার এবং সাবরুটিন সমর্থন করে।
- জাভাস্ক্রিপ্ট: ওয়েবে ব্যাপকভাবে ব্যবহৃত, বেশিরভাগ অপারেটরের সাথে সামঞ্জস্যপূর্ণ, তবে লুকবিহাইডের ক্ষেত্রে সীমাবদ্ধতা রয়েছে (আধুনিক সংস্করণ বাদে)।
- .NET এবং অন্যান্য ভাষা: এগুলি সাধারণত PCRE-এর সাথে সামঞ্জস্যপূর্ণ, তবে সর্বদা ভাষার নিজস্ব ডকুমেন্টেশনের সাথে পরামর্শ করা যুক্তিযুক্ত।
অতএব, যখনই আপনি একটি নির্দিষ্ট প্রসঙ্গে কাজ করতে যাচ্ছেন, তখন পরীক্ষা করে দেখুন যে Regex সেই টুল বা ভাষায় কোন সমর্থন এবং বাক্য গঠন গ্রহণ করে।
কীভাবে আপনার নিজস্ব রেজেক্স প্যাটার্ন পরীক্ষা এবং তৈরি করবেন
রেজেক্স শেখার সর্বোত্তম উপায় হল উদাহরণ সহ অনুশীলন করা এবং ওয়েবে উপলব্ধ লাইভ টেস্টিং টুল ব্যবহার করা।
- regex101.com: আপনাকে প্যাটার্ন লিখতে, ফলাফল পরীক্ষা করতে, ব্যাখ্যা এবং কর্মক্ষমতা পরিসংখ্যান দেখতে দেয়।
- regexr.com সম্পর্কে: : দুর্দান্ত ধাপে ধাপে সাহায্যের বিকল্প, ভিজ্যুয়াল গ্রাফিক্স এবং ইন্টারেক্টিভ উদাহরণ।
- ভিজ্যুয়াল ব্যাখ্যাকারী এবং কোড জেনারেটর: জটিল প্যাটার্ন বোঝার এবং শুরু থেকে এক্সপ্রেশন তৈরি করার জন্য আদর্শ।
- অনলাইন গেম এবং অনুশীলন: রেজেক্স কীভাবে কাজ করে তা অভ্যন্তরীণ করার জন্য খেলে শিখুন এবং বাস্তব চ্যালেঞ্জগুলি সমাধান করুন।
রেজেক্স আয়ত্ত করার জন্য সাধারণ ভুল এবং ব্যবহারিক টিপস
রেজেক্স শক্তিশালী, কিন্তু এটি বিভ্রান্তিকরও হতে পারে। এই টিপসগুলি আপনাকে সাধারণ বিপদ এড়াতে সাহায্য করবে:
- এস্কেপ মেটাঅ্যাক্টর যখন আপনি এর আক্ষরিক মান অনুসন্ধান করেন। উদাহরণস্বরূপ, ব্যবহার করুন \. মূল কথা হলো, \* তারকাচিহ্নের জন্য, \? জিজ্ঞাসাবাদের জন্য।
- পিরিয়ড (.) এবং ওয়াইল্ডকার্ড .* অতিরিক্ত ব্যবহার করবেন না। এগুলো খুবই কার্যকর, কিন্তু যদি তুমি তোমার প্যাটার্নটি ভালোভাবে সংজ্ঞায়িত না করো তাহলে এগুলো অবাঞ্ছিত ফলাফল ফিরিয়ে আনতে পারে।
- যখন আপনি প্যাটার্নটিকে লাইনের শুরু বা শেষে সীমাবদ্ধ করতে চান তখন অ্যাঙ্কর (^, $) যোগ করুন। এবং আংশিক মিল এড়িয়ে চলুন।
- নির্দিষ্ট কোয়ান্টিফায়ার ব্যবহার করুন শুধুমাত্র * অথবা + এর উপর নির্ভর করার পরিবর্তে, সঠিক পুনরাবৃত্তি অনুসন্ধান করার সময়।
- সর্বদা ইতিবাচক এবং নেতিবাচক উদাহরণ দিয়ে চেষ্টা করুন। এইভাবে আপনি সনাক্ত করতে পারবেন যে প্যাটার্নটি মিথ্যা ধনাত্মক ফলাফল তৈরি না করেই সমস্ত প্রয়োজনীয় কেস কভার করে কিনা।
- ভাগ করুন এবং জয় করুন: যদি আপনার খুব জটিল প্যাটার্ন থাকে, তাহলে এটিকে কিছু অংশে ভাগ করে নিন এবং শেষে টুকরোগুলো একত্রিত করুন।
- চিট শিট, ডকুমেন্টেশন এবং ফোরামগুলি নির্দ্বিধায় পরীক্ষা করে দেখুন। উদাহরণ এবং দৈনন্দিন কৌশল দেখতে।
প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলিতে রেজেক্সকে একীভূত করা
Regex সকল প্রধান ভাষার সবচেয়ে সাধারণ ফাংশনের সাথে একীভূত। কিছু উদাহরণ:
- জাভাস্ক্রিপ্ট: পদ্ধতি পরীক্ষা (), exec() RegExp অবজেক্ট এবং পদ্ধতিগুলির ম্যাচ(), অনুসন্ধান(), প্রতিস্থাপন (), বিভক্ত () স্ট্রিং এর।
- পাইথন: মডিউল re যেমন ফাংশন প্রদান করে অনুসন্ধান(), ম্যাচ(), findall(), উপ()ইত্যাদি
- পিএইচপি: ক্রিয়াকলাপ preg_match(), প্রিগ_রিপ্লেস(), preg_split() এবং অন্যদের
- .নেট: শ্রেণী রেজেক্স উন্নত পদ্ধতি এবং PCRE সহায়তা সহ।
সম্পাদকদের ক্ষেত্রে যেমন ভিএসকোড, সাবলাইম, অ্যাটম অথবা নোটপ্যাড++, আপনি অনুসন্ধান এবং প্রতিস্থাপনের জন্য Regex ব্যবহার করতে পারেন। এবং UNIX সিস্টেমে, ইউটিলিটিগুলি যেমন , grep, কিন্তু y অজস্র তাদের নিজস্ব Regex ইঞ্জিন অন্তর্ভুক্ত করে।
SEO এবং URL ব্যবস্থাপনায় Regex
ওয়ার্ডপ্রেস, জুমলা এবং ই-কমার্সের মতো প্ল্যাটফর্মগুলিতে URL অপ্টিমাইজেশন, ওয়েব রাউটিং এবং ডায়নামিক প্যারামিটার পরিচালনার জন্য Regex একটি মূল উপাদান।
- .htaccess এবং mod_rewrite: তারা আপনাকে রেজেক্স নিয়ম ব্যবহার করে কুৎসিত, প্যারামিটার-পূর্ণ URL গুলিকে বন্ধুত্বপূর্ণ ঠিকানায় রূপান্তর করতে দেয়। এইভাবে,
www.ejemplo.com/index.php?p=123
রূপান্তরিত করা যেতে পারেwww.ejemplo.com/articulo/titulo-amigable
, যা SEO এবং ব্যবহারকারীর অভিজ্ঞতা উভয়কেই উন্নত করে। - প্যারামিটার ফিল্টারিং: বিভিন্ন অনুসন্ধান প্রসঙ্গে ফলাফলগুলিকে অভিযোজিত করতে URL-এ প্যারামিটারগুলি বের করুন, পরিষ্কার করুন বা রূপান্তর করুন।
রেজেক্স নিয়ম ব্যবহার করে, ওয়েবমাস্টাররা পুনর্লিখনের ধরণ তৈরি করতে পারে যা সার্চ ইঞ্জিন এবং ব্যবহারকারীদের দ্বারা কাঠামো, অপ্টিমাইজেশন এবং বোধগম্যতা উন্নত করার জন্য URL উপাদানগুলি সনাক্ত এবং সংশোধন করে।
উন্নত নিয়মিত অভিব্যক্তি: কৌশল এবং সম্পদ
রেজেক্স কেবল সরাসরি অনুসন্ধানের অনুমতি দেয় না; এটি শর্তসাপেক্ষ গ্রুপিং, সাবরুটিন, পুনরাবৃত্তি, ব্যাকরেফারেন্স এবং আরও অনেক কিছু সমর্থন করে। এটি জটিল কাজের জন্য এটিকে একটি অপরিহার্য হাতিয়ার করে তোলে।
- সাবরুটিন এবং ব্যাকরেফারেন্স: এগুলো আপনাকে পুনরাবৃত্ত প্যাটার্ন, প্রতিসাম্য, ক্রম এবং খুব নির্দিষ্ট বৈধতা খুঁজে পেতে সাহায্য করে।
- শর্তাদি: পূর্ববর্তী গোষ্ঠীগুলিতে কী ধরা পড়েছে তার উপর ভিত্তি করে বিভিন্ন অনুসন্ধান বা যাচাইকরণ চালান।
- পুনরাবৃত্তি: কিছু উন্নত ইঞ্জিন আপনাকে এমন প্যাটার্ন সংজ্ঞায়িত করতে দেয় যা তাদের নিজেদের উপর প্রযোজ্য, যা XML বা JSON এর মতো স্ট্রাকচার্ড ডেটা প্রক্রিয়াকরণের সময় খুবই কার্যকর।
- গ্লোবাল মডিফায়ার: (/g, /i, /m in Perl/JavaScript) বিশ্বব্যাপী, কেস-অসংবেদনশীল, অথবা বহু-লাইন অনুসন্ধানের অনুমতি দেয়।
রেজেক্স শেখার জন্য প্রয়োজনীয় সম্পদ
আপনি যদি আপনার জ্ঞান প্রসারিত করতে চান, তাহলে এই সম্পদগুলি কার্যকর হবে:
- উইকিপিডিয়া: বিস্তারিত তাত্ত্বিক এবং প্রযুক্তিগত ব্যাখ্যা।
- নিয়মিত-এক্সপ্রেশন.ইনফো: সকল স্তরের জন্য রেফারেন্স এবং টিউটোরিয়াল।
- চিট শিট: সকল সাধারণ অপারেটর, গ্রুপ এবং নিয়মের দ্রুত সারসংক্ষেপ।
- ইন্টারেক্টিভ টিউটোরিয়াল: অনুশীলন এবং তাৎক্ষণিক প্রতিক্রিয়া সহ সরাসরি অনুশীলন।
- সম্প্রদায় এবং ফোরাম: অন্যান্য ব্যবহারকারীদের কাছ থেকে শিখুন, প্রশ্ন জিজ্ঞাসা করুন এবং আপনার ব্যক্তিগত টিপস শেয়ার করুন।
রেজেক্স শেখা টেক্সট ব্যবস্থাপনা এবং প্রক্রিয়াকরণে একটি দুর্দান্ত সুবিধা প্রদান করে, যা আরও দক্ষ অনুসন্ধান, বৈধতা, রূপান্তর এবং অটোমেশনের সুযোগ করে দেয়। ধারাবাহিকতা এবং অনুশীলনের মাধ্যমে, রেজেক্স প্যাটার্ন লেখা সহজ এবং আরও স্বাভাবিক হয়ে ওঠে। অনলাইন টুল এবং ব্যবহারিক অনুশীলনের সুবিধা নিন, সহজ উদাহরণ দিয়ে শুরু করুন এবং আরও জটিল প্যাটার্নে এগিয়ে যান। একবার আপনি এর নীতিগুলি আয়ত্ত করলে, Regex আপনার উন্নয়ন এবং সিস্টেম প্রশাসনের অস্ত্রাগারে একটি স্বাভাবিক সংযোজন হয়ে উঠবে, যা পূর্বে জটিল বা ক্লান্তিকর বলে মনে হতে পারে এমন কাজগুলিকে সহজতর করবে।