রেগুলার এক্সপ্রেশনের জন্য সিনট্যাক্স

একটি রেগুলার এক্সপ্রেশন তৈরি করতে হলে আপনাকে নির্দিষ্ট সিনট্যাক্স—অর্থাৎ, বিশেষ অক্ষর এবং গঠনবিধি—ব্যবহার করতে হবে। উদাহরণস্বরূপ, নিচে একটি সহজ রেগুলার এক্সপ্রেশন দেওয়া হলো যা nnn-nnn-nnnn প্যাটার্নে যেকোনো ১০-অঙ্কের টেলিফোন নম্বরের সাথে মিলে যায়:

\d{3}-\d{3}-\d{4}

নিম্নলিখিত সারণিতে রেগুলার এক্সপ্রেশনে ব্যবহৃত কিছু সর্বাধিক প্রচলিত বিশেষ অক্ষর বর্ণনা করা হয়েছে। এই অক্ষরগুলোকে নিম্নোক্তভাবে শ্রেণিবদ্ধ করা হয়েছে:

চরিত্র বর্ণনা
অ্যাঙ্কর
^ (ক্যারেট) রেগুলার এক্সপ্রেশনটি যে লাইন বা টেক্সট স্ট্রিং খুঁজছে, তার শুরুর অংশের সাথে মেলে। উদাহরণস্বরূপ, একটি কন্টেন্ট রুল যেখানে একটি লোকেশন সাবজেক্ট লাইন এবং নিম্নলিখিত রেগুলার এক্সপ্রেশনটি রয়েছে:

^abc

যেসব ইমেইল বার্তার সাবজেক্ট লাইন abc অক্ষর দিয়ে শুরু হয়, সেগুলো ক্যাপচার করে।
$ (ডলার) রেগুলার এক্সপ্রেশনটি যে লাইন বা টেক্সট স্ট্রিং খুঁজছে, তার শেষের সাথে মেলে। উদাহরণস্বরূপ, একটি কন্টেন্ট রুল যেখানে একটি লোকেশন সাবজেক্ট লাইন এবং নিম্নলিখিত রেগুলার এক্সপ্রেশনটি রয়েছে:

xyz$

এমন যেকোনো ইমেল বার্তা গ্রহণ করে যার সাবজেক্ট লাইনের শেষে xyz অক্ষরগুলো থাকে।
মেটা ক্যারেক্টার
. (ডট) নতুন লাইন ছাড়া যেকোনো একটি অক্ষরের সাথে মেলে।
| (পাইপ) পর্যায়ক্রম বোঝায়—অর্থাৎ, "অথবা"। উদাহরণস্বরূপ:

cat|dog শব্দটি cat or dog এর সাথে মেলে
\ এটি নির্দেশ করে যে পরবর্তী অক্ষরটি একটি আক্ষরিক অক্ষর, কোনো বিশেষ অক্ষর নয়। উদাহরণস্বরূপ:

\. যেকোনো অক্ষরের (ডট অক্ষর) পরিবর্তে একটি আক্ষরিক পিরিয়ডকে বোঝায়।
চরিত্র শ্রেণী
[...] একগুচ্ছ অক্ষরের যেকোনো একটির সাথে মেলে। একটি সেটের প্রথম এবং শেষ অক্ষরকে একটি ড্যাশ দিয়ে আলাদা করুন। উদাহরণস্বরূপ:

[123] 1 , 2 , বা 3 অঙ্কটির সাথে মেলে।

[af] a থেকে f পর্যন্ত যেকোনো অক্ষরের সাথে মেলে।

দ্রষ্টব্য: কন্টেন্ট কমপ্লায়েন্স পলিসিতে ব্যবহৃত রেগুলার এক্সপ্রেশনগুলো কেস-সেনসিটিভ।
[^...] অক্ষরের সেটে নেই এমন যেকোনো অক্ষরের সাথে মেলে। উদাহরণস্বরূপ:

[^af] ' a' থেকে 'f' পর্যন্ত যেকোনো অক্ষরকে বোঝায় যা কোনো বর্ণ নয়।

দ্রষ্টব্য: কন্টেন্ট কমপ্লায়েন্স পলিসিতে ব্যবহৃত রেগুলার এক্সপ্রেশনগুলো কেস-সেনসিটিভ।
[:alnum:] আলফানিউমেরিক অক্ষর (বর্ণ বা সংখ্যা) মেলায়:

az , AZ , অথবা 0-9

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:alnum:]]।
[:আলফা:] বর্ণমালা অক্ষরগুলো (বর্ণ) মেলায়:

az বা AZ

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:alpha:]]।
[:অঙ্ক:] সংখ্যাগুলো মেলে:

০-৯

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:digit:]]।
[:গ্রাফ:] শুধুমাত্র দৃশ্যমান অক্ষরগুলোর সাথেই মেলে—অর্থাৎ, স্পেস, কন্ট্রোল ক্যারেক্টার ইত্যাদি ছাড়া অন্য যেকোনো অক্ষর।

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:graph:]]।
[:punct:] বিরামচিহ্ন ও প্রতীকগুলো মেলায়:

! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:punct:]]।
[:প্রিন্ট:] দৃশ্যমান অক্ষর এবং স্পেসের সাথে মেলে।

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:print:]]।
[:space:] স্পেস, ট্যাব এবং লাইন ব্রেক সহ সমস্ত হোয়াইটস্পেস ক্যারেক্টারকে ম্যাচ করে।

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:space:]]।
[:শব্দ:] যেকোনো শব্দ অক্ষরের সাথে মেলে—অর্থাৎ, যেকোনো বর্ণ, সংখ্যা বা আন্ডারস্কোর:

az , AZ , 0-9 , অথবা _

দ্রষ্টব্য: রেগুলার এক্সপ্রেশনে এই ক্যারেক্টার ক্লাসটি ব্যবহার করার সময়, এটিকে অবশ্যই আরেকটি বর্গাকার বন্ধনীর মধ্যে রাখতে হবে, উদাহরণস্বরূপ: [[:word:]]।
শর্টহ্যান্ড অক্ষর ক্লাস
\w যেকোনো শব্দ অক্ষরের সাথে মেলে—অর্থাৎ, যেকোনো বর্ণ, সংখ্যা বা আন্ডারস্কোর:

az , AZ , 0-9 , অথবা _

[:word:] এর সমতুল্য
ডাব্লিউ যেকোনো শব্দ-বহির্ভূত অক্ষরের সাথে মেলে—অর্থাৎ, এমন যেকোনো অক্ষর যা বর্ণ, সংখ্যা বা আন্ডারস্কোর নয়।

[^[:word:]] এর সমতুল্য
\s যেকোনো হোয়াইটস্পেস ক্যারেক্টারের সাথে মেলে। উদাহরণস্বরূপ, একটি বাক্যাংশে শব্দগুলোর মধ্যে ফাঁকা স্থান নির্দিষ্ট করতে এই ক্যারেক্টারটি ব্যবহার করুন:

stockstips শব্দটি stock tips বাক্যাংশটির সাথে মিলে যায়।

[:space:] এর সমতুল্য
এস স্পেস নয় এমন যেকোনো অক্ষরের সাথে মেলে।

[^[:space:]] এর সমতুল্য
\d ০ থেকে ৯ পর্যন্ত যেকোনো অঙ্কের সাথে মেলে।

[:digit:] এর সমতুল্য
ডি ০ থেকে ৯ পর্যন্ত যেকোনো অক্ষরকে মেলায় যা কোনো অঙ্ক নয়।

[^[:digit:]] এর সমতুল্য
গ্রুপ
(...) কোনো এক্সপ্রেশনের অংশগুলোকে গ্রুপ করে। কোনো গ্রুপের ওপর কোয়ান্টিফায়ার প্রয়োগ করতে অথবা গ্রুপের আগে বা পরে ক্যারেক্টার ক্লাস মেলাতে গ্রুপিং ব্যবহার করুন।
পরিমাণবাচক শব্দ
{n} পূর্ববর্তী রাশিটিকে ঠিক n বার মেলান। উদাহরণস্বরূপ:

[ac]{2} এক্সপ্রেশনটি a থেকে c পর্যন্ত যেকোনো অক্ষরের সাথে তখনই মেলে, যখন দুটি অক্ষর পরপর আসে। সুতরাং, এই এক্সপ্রেশনটি ab এবং bc এর সাথে মিলবে, কিন্তু abc বা aabbc এর সাথে মিলবে না।
{n,m} পূর্ববর্তী রাশিটিকে সর্বনিম্ন n বার এবং সর্বোচ্চ m বার মেলান। উদাহরণস্বরূপ:

[ac]{2,4} এক্সপ্রেশনটি a থেকে c পর্যন্ত যেকোনো অক্ষরকে শুধুমাত্র তখনই ম্যাচ করে, যখন অক্ষরগুলো পরপর সর্বনিম্ন ২ বার এবং সর্বোচ্চ ৪ বার আসে। সুতরাং, এই এক্সপ্রেশনটি ab এবং abc-কে ম্যাচ করবে, কিন্তু aabbc-কে নয়।
? এটি নির্দেশ করে যে পূর্ববর্তী অক্ষর বা এক্সপ্রেশনটি ০ অথবা ১ বার মিলতে পারে। এটি {0,1} পরিসরের সমতুল্য। উদাহরণস্বরূপ, নিম্নলিখিত রেগুলার এক্সপ্রেশনটি:

রঙ?

এটি colour অথবা color উভয়ের সাথেই মেলে, কারণ ? চিহ্নটি u অক্ষরটিকে ঐচ্ছিক করে তোলে।