Web Development Positive Lookbehind (?<=) এবং Negative Lookbehind (?<!) গাইড ও নোট

296

Lookbehind RegExp এর একটি শক্তিশালী ফিচার, যা স্ট্রিংয়ের পূর্বের অংশ (preceding text) চেক করে এবং তার ভিত্তিতে প্যাটার্ন মিলায়। এটি বিশেষভাবে দরকারী যখন আপনি কোনো নির্দিষ্ট অংশের আগে বা পরে কিছু অনুসন্ধান করতে চান, তবে সেই অংশকে মিলাতে চান না। Lookbehind দুটি ধরনে আসে: Positive Lookbehind এবং Negative Lookbehind


Positive Lookbehind (?<=)

Positive Lookbehind প্যাটার্নটি চেক করে যে, আপনার উল্লেখিত প্যাটার্নটি ঠিক নির্দিষ্ট অংশের আগে আছে কিনা, এবং যদি থাকে তবে প্যাটার্নটি মেলে। এটি স্ট্রিংয়ের পূর্বের অংশে কিছু নির্দিষ্ট শর্ত অনুসারে মিল খুঁজে বের করার জন্য ব্যবহৃত হয়।

Positive Lookbehind কখনোই ম্যাচ না করে শুধু "পরে যা আছে" সেটি পরীক্ষা করে। প্যাটার্নে (?<=...) ব্যবহার করা হয়।


উদাহরণ:

let regex = /(?<=@)\w+/;
let str = "hello@example.com";
console.log(str.match(regex));  // ["example"]

এখানে, (?<=@) প্যাটার্নটি চেক করছে যে, স্ট্রিংয়ে @ এর পরে কোন শব্দ (word character) রয়েছে কি না। ফলস্বরূপ, এটি @ চিহ্নের পরে থাকা "example" অংশটি মেলে।


ব্যবহার:

Positive Lookbehind এর মাধ্যমে আপনি নির্দিষ্ট কোনো চরিত্রের পরে যা কিছু রয়েছে তা মেলাতে পারেন, তবে পূর্ববর্তী অংশকে মিলাতে পারবেন না।

উদাহরণ:

let regex = /(?<=\d{3}-)\d+/;
let str = "My phone number is 123-4567";
console.log(str.match(regex));  // ["4567"]

এখানে, (?<=\d{3}-) প্যাটার্নটি চেক করছে যে, তিনটি সংখ্যা এবং একটি - এর পরে কিছু সংখ্যা আছে কিনা। এবং পরে থাকা সংখ্যা 4567 মেলানো হচ্ছে।


Negative Lookbehind (?<!)

Negative Lookbehind প্যাটার্নটি চেক করে যে, আপনার উল্লেখিত প্যাটার্নটি নির্দিষ্ট অংশের আগে নেই। অর্থাৎ, এটি স্ট্রিংয়ের পূর্বের অংশে কিছু না থাকার শর্তে মিল খুঁজে বের করে।

Negative Lookbehind কখনোই ম্যাচ না করে শুধু "পরে যা নেই" সেটি পরীক্ষা করে। প্যাটার্নে (?<!) ব্যবহার করা হয়।


উদাহরণ:

let regex = /(?<!@)\w+/;
let str = "hello@example.com";
console.log(str.match(regex));  // ["hello"]

এখানে, (?<!@) প্যাটার্নটি চেক করছে যে, @ চিহ্নের আগে কোনো শব্দ নেই। ফলস্বরূপ, এটি "hello" অংশটি মেলে, কারণ @ চিহ্নের আগে এটি রয়েছে না।


ব্যবহার:

Negative Lookbehind এর মাধ্যমে আপনি এমন একটি শর্ত পরীক্ষা করতে পারেন যেখানে কিছু নির্দিষ্ট অংশের আগে কিছু না থাকার শর্তে মিল খুঁজতে চান।

উদাহরণ:

let regex = /(?<!\d)-?\d+/;
let str = "My total is -500 and cost is 300";
console.log(str.match(regex));  // ["-500"]

এখানে, (?<!\d) প্যাটার্নটি চেক করছে যে, কোনো সংখ্যা আগে নেই। যদি -500 এর আগে কোনো সংখ্যা না থাকে, তবে এটি মেলানো হবে। "300" মেলানো হবে না, কারণ সেখানে একটি সংখ্যা (3) পূর্বে আছে।


Positive Lookbehind এবং Negative Lookbehind এর পার্থক্য

  • Positive Lookbehind: এটি চেক করে যে, কিছু নির্দিষ্ট প্যাটার্নের পরে অন্য কিছু আছে কিনা।
  • Negative Lookbehind: এটি চেক করে যে, কিছু নির্দিষ্ট প্যাটার্নের আগে কিছু নেই।

সারাংশ

Positive Lookbehind (?<=) এবং Negative Lookbehind (?<!) RegExp-এর শক্তিশালী টুলস যা স্ট্রিংয়ের পূর্বের অংশের শর্তে মিল খুঁজে বের করতে সহায়তা করে।

  • Positive Lookbehind একটি নির্দিষ্ট প্যাটার্নের পরে কী আছে তা পরীক্ষা করে।
  • Negative Lookbehind একটি নির্দিষ্ট প্যাটার্নের আগে কী নেই তা পরীক্ষা করে।

এই দুটি মেটাচরিত্র ব্যবহার করে, আপনি স্ট্রিং ম্যানিপুলেশনে আরো সূক্ষ্ম নিয়ন্ত্রণ পেতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...