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

মৌলিক প্রতিস্থাপন এবং `$1`

জাভাস্ক্রিপ্টে, String.prototype.replace(regex, replacement) একটি সম্পাদন করে প্যাটার্ন ম্যাচ করে এবং প্রতিটি ম্যাচকে প্রদত্ত স্ট্রিং দিয়ে প্রতিস্থাপন করে। g এর সাথে পতাকা এটি সমস্ত ম্যাচ প্রতিস্থাপন করে; এটা ছাড়া, শুধুমাত্র প্রথম. replaceAll বিশ্বব্যাপী আচরণকে বাধ্য করে (এবং রেজেক্সে g পতাকা প্রয়োজন)।

JS
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"

প্রতিস্থাপন স্ট্রিং মধ্যে উল্লেখ

প্রতিস্থাপন স্ট্রিং এর ভিতরে, এগুলি বিশেষ:

  • $1, $2, \u2026 -- রেজেক্সের সংখ্যাযুক্ত গ্রুপ এর পিছনের রেফারেন্স।
  • $<name> -- নামিত গ্রুপ এর পিছনের রেফারেন্স।
  • $& -- পুরো ম্যাচ।
  • $\_` -- text before the match.
  • $' -- text after the match.
  • $$ -- a single literal $।
JS
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"

ক্রম উল্টে তারিখটি পুনরায় ফর্ম্যাট করুন। রেজেক্সে 3টি গ্রুপ রয়েছে এবং এর মধ্যে প্রতিস্থাপন স্ট্রিং আপনি তাদের $1, $2, $3 হিসাবে উল্লেখ করেন।

প্রতিস্থাপনে বিশেষ উল্লেখ

$1 এবং $2 ছাড়াও, আপনি সম্পূর্ণ মিলে যাওয়া পাঠ্য সন্নিবেশ করতে $& ব্যবহার করতে পারেন, $ for all text preceding the match, and$'` এর অনুসরণ করা সমস্ত পাঠ্যের জন্য৷ এটি JS কোড না লিখেও সমৃদ্ধ প্রতিস্থাপনের অনুমতি দেয়।

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

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

তিনটি গ্রুপ (বছর, মাস, দিন) সহ YYYY-MM-DD ফর্ম্যাটে প্রতিটি তারিখ খুঁজুন। এইভাবে আপনি DD/MM/YYYY পাওয়ার জন্য প্রতিস্থাপন ব্যবহার করতে পারেন।

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

\\d+ প্রতিস্থাপন করুন \\d{4}, \\d{2}, \\d{2} এর সাথে ক্যাপচার করা তিনটি গ্রুপের মধ্যে (...)।

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

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

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

'প্রথম শেষ' দুটি নামযুক্ত গ্রুপ `নোম` এবং `কগনোম` হিসাবে খুঁজুন, যাতে আপনি `$<cognome>, $<nome>` ব্যবহার করে এটিকে `কগনোম, নোম` হিসাবে পুনরায় লিখতে পারেন।

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

\\s+ দ্বারা পৃথক করা (?<nome>\\w+) এবং (?<cognome>\\w+) ব্যবহার করুন।

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

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

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

Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.

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

Use two capture groups for last and first name; the replacement will be performed via $2 $1.

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