জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশনে সেটের ভিতরে হাইফেন
হাইফেন - [ ] এর ভিতরেও একটি বিশেষ চরিত্র
(কিন্তু বাইরে - নয়)। যদি আপনার দরকার হাইফেন নিজেই作为一个 চরিত্র হিসাবে - তবে সেটিকে সেখানে রাখুন,
যেখানে এটি একটি গ্রুপ বিভাজক হিসাবে গৃহীত হবে না।
এটি কেন গুরুত্বপূর্ণ: আপনি নিজের অজান্তেই একটি চরিত্র গ্রুপ তৈরি করে ফেলতে পারেন। উদাহরণস্বরূপ,
এটি এরকম - '[:-@]' - আপনি ভাবছেন যে আপনি কোলন, হাইফেন এবং এট সাইন নির্বাচন করছেন, কিন্তু
বাস্তবে এটি : এবং @ এর মধ্যবর্তী চরিত্রগুলোর একটি গ্রুপে পরিণত হয়। এই গ্রুপে
নিম্নলিখিত চরিত্রগুলি অন্তর্ভুক্ত রয়েছে: ? < = > : ;
এগুলি কোথা থেকে এসেছে? ASCII টেবিল থেকে - কোলনের সংখ্যা এট সাইনের চেয়ে কম - এবং ফলে একটি গ্রুপ তৈরি হয়। অর্থাৎ সমস্ত গ্রুপ ASCII টেবিল অনুসারে তৈরি হয় (ইচ্ছা করলে এটি ব্যবহার করা যেতে পারে)।
এটির সাথে কীভাবে মোকাবিলা করবেন: হাইফেন চরিত্রটি সেখানে রাখুন
যেখানে এটি নিশ্চিতভাবে গ্রুপ চরিত্র হিসাবে গৃহীত হবে না,
উদাহরণস্বরূপ, শুরুতে বা শেষে
(অর্থাৎ [ এর পরে বা ] এর আগে)।
আপনি হাইফেনকে এস্কেপও করতে পারেন - তখন
এটি তার অবস্থান নির্বিশেষে নিজেকে বোঝাবে।
উদাহরণস্বরূপ, [:-@] এর পরিবর্তে লিখুন
[:\-@] - এবং তখন আর কোন গ্রুপ থাকবে না,
বরং তিনটি চরিত্র থাকবে - কোলন, হাইফেন এবং এট সাইন
@।
উদাহরণ
নিম্নলিখিত উদাহরণে, অনুসন্ধান প্যাটার্নটি হল:
অঙ্ক 1, তারপর 'a' থেকে 'z' পর্যন্ত অক্ষর,
তারপর অঙ্ক 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! 1-2 ! !'
উদাহরণ
এখন আসুন হাইফেনকে এস্কেপ করি। ফলস্বরূপ
অনুসন্ধান প্যাটার্নটি হল: অঙ্ক 1, তারপর
অক্ষর 'a', বা হাইফেন, বা অক্ষর 'z',
তারপর অঙ্ক 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! ! 1c2 !'
উদাহরণ
এটি এস্কেপ না করেই শুধু হাইফেনের অবস্থান পরিবর্তন করা যেতে পারে:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! ! 1c2 !'
উদাহরণ
নিম্নলিখিত উদাহরণে, অনুসন্ধান প্যাটার্নটি হল:
প্রথম চরিত্রটি হল ছোট হাতের অক্ষর বা
হাইফেন '-', তারপর দুটি 'x' অক্ষর:
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! Axx ! @xx'
উদাহরণ
নিম্নলিখিত উদাহরণে, অনুসন্ধান প্যাটার্নটি হল:
প্রথম চরিত্রটি হল ছোট হাতের, বড় হাতের
অক্ষর বা হাইফেন '-', তারপর দুটি 'x' অক্ষর:
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! ! ! @xx'
উদাহরণ
হাইফেনকে দুটি গ্রুপের মাঝখানে স্থাপন করা যেতে পারে - সেখানে এটি নিশ্চিতভাবে আরেকটি গ্রুপ তৈরি করবে না:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লেখা হবে:
'! ! ! @xx'
ব্যবহারিক সমস্যা
একটি স্ট্রিং দেওয়া হয়েছে:
let str = 'xaz xBz xcz x-z x@z';
নিম্নলিখিত প্যাটার্ন অনুযায়ী সমস্ত স্ট্রিং খুঁজুন:
অক্ষর 'x', বড় বা ছোট হাতের অক্ষর
বা হাইফেন, অক্ষর 'z'।
একটি স্ট্রিং দেওয়া হয়েছে:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
নিম্নলিখিত প্যাটার্ন অনুযায়ী সমস্ত স্ট্রিং খুঁজুন:
অক্ষর 'x', তারপর বা ডলার চিহ্ন, বা
হাইফেন বা প্লাস চিহ্ন, তারপর অক্ষর 'z'।