পিএইচপি রেগুলার এক্সপ্রেশন

নিজের কম্পিউটারে অনেক সময় আমরা ফাইল সার্চ করি যেমন আপনি যদি My Computer (Win7) এ গিয়ে ডানদিকে উপরে সার্চ বক্সে *.txt লিখে এন্টার দেন তাহলে আপনার পিসিতে থাকা সব txt ফাইল এনে হাজির করবে।*.txt হচ্ছে একটা প্যাটার্ন।এভাবে আরও নির্দিষ্ট প্যাটার্ন লিখে আপনি নির্দিষ্ট কিছু ফাইল বের করতে পারেন।

পিএইচপিতেও এরকম প্যাটার্ন লিখে হাজার হাজার ফাইল বা কনটেন্টের মধ্যে নির্দিষ্ট একটা টেক্সট বের করা যায়,প্রয়োজন হলে এই টেক্সট রিপ্লেস করতে পারবেন এধরনের ফাংশন আছে।মাইক্রোসফট ওয়ার্ডে বা কোন টেক্টট এডিটরে কখনও Find অপশন দিয়ে ফাইন্ড রিপ্লেস করেছেন তো? পিএইচপির রেগুলার এক্সপ্রেশন সম্পর্কিত ফাংশনগুলি দিয়ে এই কাজগুলি করা যায়।শুধু পার্থক্য হচ্ছে পিএইচপির এই রেগুলার এক্সপ্রেশন এর ফাংশনগুলি দিয়ে অনেক এডভান্সড এবং বিভিন্ন ধরনের কাজ করা যায়।

যেমন আপনার সাইটে ধরুন একটা ফর্ম আছে যেখানে ইউজারকে মোবাইল নম্বর টাইপ করতে হবে।আপনি চাচ্ছেন যে সিটিসেল ছাড়া অন্য কোন মেবাইল নম্বর দেয়া যাবেনা তাহলে preg_match() ফাংশন দিয়ে যাচাই করতে পারবেন সে সিটিসেল নাম্বার দিয়েছে কিনা।অথবা আপনার একটা ব্লগ আছে আপনি চান কেউ যেন মন্তব্যের সাথে কোন লিংক দিতে না পারে।তখন <a> এবং </a> ট্যাগ অন্য কোন ট্যাগ দিয়ে রিপ্লেস করতে পারবেন এধরনের ফাংশন আছে।

যাইহোক এধরনের অনেক ফাংশন আছে যা দিয়ে নানান ধরনের কাজ করা যায়।ফাংশন গুলি বোঝা এবং ব্যবহার করা সহজ।এই ফাংশনগুলিতে আর্গুমেন্ট হিসেবে প্যাটার্ন দিতে হয় আর এই প্যাটার্নগুলি লেখা বেশ ঝামেলার।কারন প্যাটার্ন লেখার অনেক অনেক অনেক... নিয়ম আছে।প্যাটার্নে অনেক ধরনের চিহ্ন ব্যবহার করা হয় এগুলি কষ্ট করে মনে রাখতে হবে।এই প্যাটার্নগুলিই হচ্ছে রেগুলার এক্সপ্রেশন।যেমন
\d{3}(-\d{5})? এটা একটা প্যাটার্ন এর অর্থ হচ্ছে ৮ সংখ্যার কোন একটা অংক যেখানে ৩টি সংখ্যার পর  একটা হাইফেন থাকবে (-) আর শেষের ৫টি সংখ্যা ঐচ্ছিক।এই প্যাটার্নটি মিলবে 254-65824,215-65497,646 এই ধরনের অংকগুলির সাথে।

ব্যাখ্যা:
\d অর্থ একটা সংখ্যা ০ থেকে ৯ এর মধ্যে
{3} অর্থ আগের আইটেমটি মোট ৩ বার হবে (অর্থ্যাৎ ৩টি সংখ্যা হবে)
- এটাকে বলে লিটারেল অক্ষর (literal character)
\d একটা সংখ্যা ০ থেকে ৯ এর মধ্যে
{5} অর্থ আগের আইটেমটি মোট ৫ বার হবে (অর্থ্যাৎ ৫টি সংখ্যা হবে)
()? এর অর্থ ব্রাকেটের ভিতর যা আছে তা ঐচ্ছিক (এই চিহ্নের কারনে উপরের 646 এর সাথেও মিলবে কারন হাইফেন থেকে শুরু করে বাকি অংশ ঐচ্ছিক)

কোন মন্তব্য নেই

Blogger দ্বারা পরিচালিত.