প্রযুক্তিগত উত্তর: tradition egrep
তিহ্যগতভাবে, অভ্যন্তরীণভাবে grep
একটি ডিস্ট্রিমেন্টিক সসীম অটোমেটন (ডিএফএ) ব্যবহার করা হয়েছে, যখন একটি অ-ডিস্ট্রিমেন্টিক সসীম অটোমেটন (এনএফএ) ব্যবহার করা হয়েছিল। আজকাল, জিএনইউ grep
এবং egrep
একটি হাইব্রিড এনএফএ / ডিএফএ পদ্ধতি গ্রহণ করুন।
ফ্রেডেলের বই মাস্টারিং নিয়মিত এক্সপ্রেশন অনুসারে , আপনার egrep
(উদাহরণস্বরূপ) একটি এনএফএ ইঞ্জিন রয়েছে কিনা বা এটিতে ডিএফএ ইঞ্জিন রয়েছে কিনা তা আবিষ্কার করতে:
echo =XX========================================= | egrep 'X(.+)+X'
ফ্রেইডল (p.147) বলেছেন:
এটি শেষ করতে যদি দীর্ঘ সময় লাগে তবে এটি একটি এনএফএ ... এটি দ্রুত শেষ হলে এটি ডিএফএ বা কিছু উন্নততর অপ্টিমাইজেশন সহ একটি এনএফএ। এটি কোনও স্ট্যাকের আওতা বা দীর্ঘ ম্যাচ বাতিল হওয়া সম্পর্কে কোনও সতর্কতা বার্তা প্রদর্শন করে? যদি তা হয় তবে এটি একটি এনএফএ।
ফ্রেডল এনএফএ ইঞ্জিনকে "রেজেক্স-ডাইরেক্টেড" এবং ডিএফএকে "পাঠ্য-নির্দেশিত" হিসাবে বর্ণনা করেছেন। পার্থক্যের বিশদটি তাঁর বইয়ের পরবর্তী পৃষ্ঠা পৃষ্ঠা 153 থেকে বর্ণনা করা হয়েছে।
ফলাফলটি হ'ল এমন কিছু প্যাটার্ন / পাঠ্য সংমিশ্রণ রয়েছে যা ডিএফএ আরও দ্রুত মেলে এবং কিছু এনএফএ দ্বারা আরও দ্রুত মেলা হয় mat এছাড়াও, আপনি যেভাবে এনএফএর জন্য একটি রেজেেক্স লিখছেন তা মেলার গতিতে উল্লেখযোগ্য প্রভাব ফেলতে পারে। প্রায়শই, একটি ডিএফএ দ্রুততর হয়, তবে ডিএফএগুলি অলস মিলনকে সমর্থন করে না, কিছু ক্ষেত্রে এগুলি আলাদাভাবে মিলছে, তারা চেহারা-আশেপাশের এক্সপ্রেশন বা ব্যাক-রেফারেন্স করতে পারে না এবং এনএফএগুলির তুলনায় তারা কিছু অন্যান্য বৈশিষ্ট্য বাদ দেয়।
ফ্রিডেলের মতে, জিএনইউ grep
সম্ভব হলে একটি ডিএফএ ব্যবহার করে এবং ব্যাক-রেফারেন্সগুলি ব্যবহার করার সময় এনএফএতে ফিরে আসে।