মূল কন্টেন্টে যান
মডিউল 1 · 4-এর পাঠ 4কোর্সে 4/32~10 min
মডিউল পাঠ (4/4)

মেটা-ক্যারেক্টার এস্কেপিং

রেজেক্সের কিছু অক্ষরের একটি বিশেষ অর্থ রয়েছে: তাদের বলা হয় মেটা-অক্ষর। আপনি যদি আক্ষরিক অক্ষরের সাথে মেলাতে চান (যেমন একটি বাস্তব ., একটি বাস্তব +, একটি বাস্তব বন্ধনী) আপনাকে একটি দিয়ে তাদের উপসর্গ দিতে হবে ব্যাকস্ল্যাশ \, যা তাদের পালায়।

মনে রাখার জন্য মেটা-অক্ষর হল বারোটি:

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(/ আসলে একটি ইঞ্জিন মেটা-অক্ষর নয়, তবে এটি অবশ্যই এস্কেপ করা উচিত জাভাস্ক্রিপ্ট আক্ষরিক স্বরলিপি /.../।)

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

এখানে আমরা পালাচ্ছি $ (স্ট্রিং-এর শেষ-অ্যাঙ্কর) এবং . (ওয়াইল্ডকার্ড) সাথে মেলাতে মূল্য বিন্যাসে আক্ষরিক অক্ষর "ডলার + সংখ্যা + বিন্দু + দুই সংখ্যা"।

JS স্ট্রিংগুলিতে ডাবল ব্যাকস্ল্যাশ

যখন আপনি একটি জাভাস্ক্রিপ্ট স্ট্রিং এর ভিতরে একটি প্যাটার্ন লেখেন (যেমন আপনি আমাদের ব্যায়াম) ব্যাকস্ল্যাশ অবশ্যই ** দ্বিগুণ ** হতে হবে। JS স্ট্রিং '\\d' এ রয়েছে দুটি অক্ষর (\ এবং d) এবং ঠিক রেজেক্স প্যাটার্ন \d।

JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash

কোর্স এডিটর প্যাটার্নটি দেখায় ইতিমধ্যেই ডিকোড করা (আপনি একটি একক দেখতে পান \d); আপনি নিজেকে কিছু দ্বিগুণ করতে হবে না.

12টি বিশেষ মেটা-অক্ষর

ইঞ্জিনে বিশেষ অর্থ সহ অক্ষরগুলি ঠিক 12: \\\ ^ $ . | ? * + ( ) [ {। আপনি যদি সেগুলিকে আক্ষরিক টেক্সট হিসাবে মেলাতে চান তবে আপনাকে অবশ্যই একটি ব্যাকস্ল্যাশ দিয়ে সেগুলিকে আগে রাখতে হবে৷ কিছু পরিবেশে (যেমন অ-কাঁচা JS স্ট্রিং), আপনাকে ব্যাকস্ল্যাশ দ্বিগুণ করতে হতে পারে (\\\\)।

চেষ্টা করে দেখুন

ব্যায়াম#regex.m1.l4.e1
প্রচেষ্টা: 0লোড হচ্ছে...

`$N.NN` বিন্যাসে প্রতিটি মূল্য খুঁজুন (ডলার, এক বা একাধিক সংখ্যা, বিন্দু, দুই সংখ্যা)। `$` এবং `.` পালাতে মনে রাখবেন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

$কে অবশ্যই \\$ হিসেবে, বিন্দুটিকে \\ হিসেবে পালাতে হবে। - অন্যথায় বিন্দু কিছু মেলে।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#regex.m1.l4.e2
প্রচেষ্টা: 0লোড হচ্ছে...

পাঠ্যে প্রতিটি আক্ষরিক প্রশ্ন চিহ্ন `?` খুঁজুন। `?` একটি মেটা-অক্ষর: এটি অবশ্যই এস্কেপ করা উচিত।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি পালানো ছাড়া,? একটি কোয়ান্টিফায়ার হবে (মডিউল 2)। এটির সামনে একটি \\ রাখুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#regex.m1.l4.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

এটি থেকে রক্ষা পেতে প্রতিটি বিন্দুর আগে একটি ব্যাকস্ল্যাশ ঢোকান।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ