আমি কীভাবে তাদের মোকাবেলা করব?
যে কোনও নতুন জিনিসের মতো:
10 Study
20 Practice
30 goto 10
অধ্যয়ন
আমি দেখতে পেয়েছি যে সর্বাধিক সফল শিক্ষকরা প্রথমে বিষয়টিকে কিছুটা ব্যাকগ্রাউন্ড সরবরাহ করে যে কোনও বিষয়ে পড়াতে শুরু করেন। আপনি কী শিখছেন এবং সবচেয়ে গুরুত্বপূর্ণ, আপনি এটি কেন শিখছেন তার একটি প্রসঙ্গ থাকা গুরুত্বপূর্ণ ।
এটি সব স্ট্রিং ম্যাচিং
নিয়মিত এক্সপ্রেশন হ'ল পাঠ্যের সাথে মিলে যাওয়া নিদর্শনগুলির একটি মাধ্যম। এটি একটি ঘোষণামূলক ভাষা যা নিজেই অন্যান্য অসংখ্য প্রোগ্রামিং ভাষার অন্তর্ভুক্ত।
আমি জোর দিয়ে বলতে চাই যে এটি একটি ঘোষণামূলক ভাষা, নিয়মিত প্রকাশগুলি কোন স্ট্রিংয়ের সাথে মেলে তা প্রকাশ করার জন্য দরকারী তবে প্রোগ্রামটি কীভাবে ম্যাচটি করতে চলেছে তা কোনওভাবেই তারা প্রকাশ করে না। এই কারণে নিয়মিত এক্সপ্রেশনটি খুব দ্রুত এবং খুব ধীরে ধীরে একই প্রোগ্রামিং ভাষায় অন্য কোনও রেগেক্স পার্সার ব্যবহার করে ব্যবহার করা সম্ভব।
নিয়মিত ভাব প্রকাশের কারণ বেশিরভাগ প্রোগ্রামিং ভাষা তৈরির জন্য একই: প্রোগ্রামাররা নিজেরাই একই জটিল কাজ বারবার সম্পাদন করতে দেখে এবং সিদ্ধান্ত নিয়েছে যে তারা কোডটি লেখার একটি সহজ উপায় চায়।
কেউ কেউ (এবং হওয়া উচিত) এর পূর্ববর্তী বাক্যে কিছু বলে আমার পূর্ববর্তী বাক্যটি সম্পর্কে অভিযোগ করবে:
RegEx কোনও প্রোগ্রামকে সহজ করে না।
এটা সত্যি
Regex নেই একটি প্রোগ্রাম কোনো সহজ, Regex তোলে করতে লেখা প্রোগ্রাম সহজ। সমস্ত সঠিক কেসগুলি সঠিকভাবে মিলেছে এবং সমস্ত ভুল ক্ষেত্রে তা নয় তা নিশ্চিত হওয়ার জন্য আপনাকে এখনও আপনার পরীক্ষায় পুরোপুরি দরকার। "সমস্ত" পরীক্ষা করা সত্যিই কঠিন, এবং জটিল নিদর্শনগুলির সাথে, "সর্বাধিক" পরীক্ষা করা সত্যিই কঠিন। সবচেয়ে খারাপ, আপনার এখনও "কিছু" কেস পরীক্ষা করা উচিত।
আমি জাভাস্ক্রিপ্টের রেজিএক্স ইঞ্জিনকে বাধ্যতামূলকভাবে বেছে নিয়েছি এমন কয়েকটি উদাহরণ সংযুক্ত করতে দেয় কারণ আমি এটি সহজেই ব্রাউজারে লাইভ পরীক্ষা করতে পারি এবং কারণ রেজিএক্স আক্ষরিক ব্যবহার করার সময় আমাকে কোনও স্ট্রিং পলায়ন করতে হবে না।
আপনি যখন সাধারণ স্ট্রিং ম্যাচিং করেন, আপনি অন্যটির বিরুদ্ধে একটি স্ট্রিংয়ের মান পরীক্ষা করেন test এগুলি যে কোনও জায়গা থেকে আসতে পারে তবে শেষ পর্যন্ত একে অপরের সাথে তুলনা করে দুটি স্ট্রিং লাগে:
if ( 'foo' == 'bar' ) doSomething();
উদাহরণস্বরূপ sucks কারণ এটি কখনও হবে না কিছু
if ( foo == 'bar' ) doSomething();
অনেক ভাল; এখন, কিছু করা হবে কি হবে না আমরা আসলে সময়ের আগে জানি না। আমরা এখন ব্যবহারকারীর ইনপুট গ্রহণ করা শুরু করতে পারি:
if ( prompt( 'Say "bar" to do something.' ) == 'bar' ) doSomething();
আশ্চর্যজনক, এখন ব্যবহারকারীরা ইনপুট bar
করতে পারে এবং কিছু ঘটবে, যতক্ষণ না আপনি ব্যবহারকারীরা যে "bar"
কাজ করছেন না বা "বিএআর" কাজ করছে না, বা তারা BRA
100 বার টাইপ করেছে এবং এর আগে কখনও ঘটেনি এমন কোনও বাগ রিপোর্ট পাবেন ।
ভুল বানান এবং অতিরিক্ত অক্ষর উপেক্ষা করে 'bar' != 'BAR'
প্রোগ্রামারদের যেখানে অক্ষরগুলি ভুল ক্ষেত্রে তা পরীক্ষা করার জন্য একটি উপায় চিন্তা করা প্রয়োজন think
সহজ সমাধান, ব্যবহার toLowerCase
। এটি আশ্চর্যজনকভাবে কাজ করে, তবে আমাদের ব্যবহারকারীরা কী মিলছেন যখন আপনি আমেরিকান ইংলিশে ব্রিটিশ ইংরেজি ব্যবহার করছেন something == 'color'
? এখন আপনাকে মিলতে হবে something == 'color' || somthing == 'colour'
।
দীর্ঘ গল্পের সংক্ষিপ্ত, সাধারণ নিদর্শনগুলি খুব দ্রুত পুনরুক্তিযোগ্য কোডগুলিতে রূপান্তরিত হয়।
রঙ উদাহরণটি সহজেই এর সাথে মেলে:
/colou?r/.test( something )
নিয়মিত এক্সপ্রেশনগুলির মূল বিষয়গুলি সম্পর্কে একটি গভীর বোঝা আপনি চক্রটিকে পুনর্নির্মাণে ব্যয় করা সময়ের পরিমাণ উল্লেখযোগ্যভাবে হ্রাস করতে পারে।
কোথায় পড়াশোনা করতে হবে
বেশিরভাগ ভাষাগুলি যা নিয়মিত এক্সপ্রেশন প্রয়োগ করে সেই ভাষার মধ্যে নিয়মিত এক্সপ্রেশন ব্যবহারের নির্দিষ্ট বাক্য গঠনের জন্য কমপক্ষে একটি সংস্থান উপলব্ধ রয়েছে। জাভাস্ক্রিপ্টের জন্য একটি এমডিএন-তে পাওয়া যাবে
এটি পড়ুন।
এটার সবগুলো.
তারপরে আবার পড়ুন।
এটি শিখতে সময় লাগে, একে বিনিয়োগ হিসাবে ভাবেন: RegEx শেখার জন্য এক ঘন্টা এখন পরের বার কিছু স্ট্রিং প্যাটার্ন ম্যাচিং করার দরকার পরে একটি ঘন্টা বাঁচায় এবং তারপরে পরের সময় আরও একটি ঘন্টা।
অনুশীলন করা
RegEx সম্পর্কে সমস্ত পড়ার পরে, আপনি সম্ভবত এটি বেশিরভাগই বুঝতে পারবেন না। এর কারণ আপনি আসলে এটি দিয়ে কিছুই করছেন না ।
আমি উল্লেখ করেছি যে কেন আমি এই উদাহরণের জন্য জেএসকে বেছে নিয়েছি, আমি আপনাকে এটি আপনার ব্রাউজারে গণ্ডগোলের জন্য অনুরোধ করছি। এটি দ্রুত এবং আপনি এটি আপনার URL বারে করতে পারেন।
জেএসের রেজিএক্স ব্যবহারের কয়েকটি ভিন্ন এবং সহজ উপায় রয়েছে:
string.match( regex )
regex.exec( string )
regex.test( string )
সাধারণ কিছু দিয়ে শুরু করা:
javascript:'color'.match(/colou?r/);
আপনার পা দরজা পেতে একটি সহজ উপায়। এটি খেলুন, এটি দেখুন কি মিলছে এবং কোনটি নয় তা ভেঙে দিন।
আপনি যখন অনুশীলনে আটকে যান, চালিয়ে যান 30
। আপনাকে আরও শিখতে পড়তে হবে তবে আপনি যা শিখেছেন তা বুঝতে অনুশীলন করা দরকার।