মডিউল পাঠ (4/4)
regex দিয়ে বিভক্ত করুন
String.prototype.split(separator) শুধুমাত্র একটি নির্দিষ্ট স্ট্রিং গ্রহণ করে না কিন্তু
এছাড়াও বিভাজক হিসাবে একটি regex। এটি টোকেনাইজ করার একটি শক্তিশালী হাতিয়ার করে তোলে
কাঠামোবদ্ধ পাঠ্য।
'uno, due,tre quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]রেজিক্স /[,\s]+/ মেলে "এক বা একাধিক কমা বা হোয়াইটস্পেস": বিভক্ত
যে কোন যৌগ বিভাজক উপর বিভক্ত.
সাধারণ ক্ষেত্রে
- অনুমোদিত CSV:
text.split(/\s*,\s*/)কমাগুলির চারপাশে স্থানগুলি পরিচালনা করতে৷ - অনেক টোকেনাইজার:
text.split(/\s+/)শব্দ বের করতে। - বিভাজক রাখুন: যদি রেজেক্সে ক্যাপচারিং গ্রুপ থাকে, তাহলে গ্রুপের বিষয়বস্তু ফলাফল অ্যারেতে অন্তর্ভুক্ত।
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]() গ্রুপ ছাড়া সেমিকোলন অদৃশ্য হয়ে যাবে। (;) এর সাথে আপনি এটি রাখেন
ফলাফলে
বিভক্ত অপারেশনে বিভাজক সংরক্ষণ
আপনি যদি ক্যাপচারিং বন্ধনীর ভিতরে বিভক্ত বিভাজক রাখেন, তাহলে String.prototype.split এর আউটপুট বিভাজকগুলিকে বাতিল না করে চূড়ান্ত অ্যারেতে উপাদান হিসেবে অন্তর্ভুক্ত করবে।
চেষ্টা করে দেখুন
প্রতিটি অনুমোদিত CSV বিভাজক খুঁজুন: এর চারপাশে ঐচ্ছিক স্থান সহ একটি কমা। এইভাবে আপনি তালিকাটিকে টোকেনাইজ করতে বিভক্তভাবে এটি ব্যবহার করতে পারেন।
ইঙ্গিত দেখান
যেকোনো ঐচ্ছিক স্পেস শোষণ করতে কমার আগে এবং পরে \\s* ব্যবহার করুন।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
প্রতিটি 'স্পেস বা সেমিকোলন' বিভাজক (এক বা একাধিক) খুঁজুন। এইভাবে বিভক্ত করা টেক্সটকে শব্দে পরিণত করবে।
ইঙ্গিত দেখান
একত্রিত করুন \\s এবং ; একটি ক্লাসে [\\s;] + কোয়ান্টিফায়ার সহ।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
অতিরিক্ত চ্যালেঞ্জ
Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.
ইঙ্গিত দেখান
Enclose the math operators character class in capture parentheses to preserve them in the split array.
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ