সমস্যাটি
রেজেক্সের সাহায্যে অনুমতি পাওয়ার কোনও সহজ উপায় নেই।
- বিন্যাস: একটি পথ শব্দ আরেকটি অর্ডার ( "aabc") সংখ্যা পরিবর্তন করা বা বর্ণের ধরনের ছাড়া।
- রেজেক্স: নিয়মিত অভিব্যক্তি।
যাচাই করার জন্য:
- "পুনরাবৃত্তি ছাড়াই রেজেক্স অনুমান " উত্তরটি একটি রেইজেক্সের পরিবর্তে জাভাস্ক্রিপ্ট কোড তৈরি করে, ধরে নেওয়া এই আরও সহজ হবে।
- "প্রদত্ত লেখায় প্রদত্ত শব্দের সমস্ত অনুমতি কীভাবে সন্ধান করতে হয়" - উত্তরটি রেজিেক্সগুলিও ব্যবহার করে না।
- "পুনরাবৃত্তি ছাড়াই সমস্ত match 1, 2, 3, 4 match এর সাথে মিলে যাওয়ার জন্য রেজেক্স " - উত্তরটি রেজিক্সগুলি ব্যবহার করে, তবে এটি অভিযোজ্য বা সহজও নয়।
- এই জবাব এমনকি এমনকি দাবি করে: "একটি নিয়মিত প্রকাশ আপনি যা চাইছেন তা করতে পারে না It এটি কোনও স্ট্রিং থেকে অনুমান উত্পন্ন করতে পারে না" ।
আমি যে ধরণের সমাধান অনুসন্ধান করছি
এটির ফর্মটি থাকা উচিত:
- Ab aabc «(বা অন্য কোনও কিছু যা আপনি খোলার এবং বন্ধ করার বন্ধনী ব্যবহার করতে পারেন)
- (Aabc)! (একই সাথে (এবিসি)? তবে শেষ পর্যন্ত অন্য প্রতীক সহ)
- [Aabc] ([এবিসি] এর অনুরূপ তবে শেষের দিকে অন্য প্রতীক সহ)
এই সমাধানগুলির সুবিধা
তারা হ'ল:
- সহজ
- অভিযোজ্য
- পুনর্ব্যবহারযোগ্য
কেন এটি থাকা উচিত
- রেগেক্সেস একটি নিয়মিত ভাষার ব্যাকরণ বর্ণনা করার একটি উপায়। যে কোনও ধরণের নিয়মিত ভাষা হওয়ার পূর্ণ ক্ষমতা তাদের রয়েছে।
- ধরা যাক, নিয়মিত ভাষাগুলি অনুমতি দেওয়ার পক্ষে যথেষ্ট শক্তিশালী (নীচে প্রমাণ) - কেন এটি প্রকাশ করার কোনও সহজ উপায় নেই?
সুতরাং আমার প্রশ্নটি হ'ল:
- (কেন) আমার প্রমাণটি ভুল?
- যদি এটি সঠিক হয়: অনুমতি প্রকাশের কোনও সহজ উপায় কেন নেই?
প্রমাণ
- নিয়মিত ভাষাগুলি নিয়মিত ভাষার ব্যাকরণ নোট করার এক উপায়। তারা যে কোনও নিয়মিত ভাষার ব্যাকরণ বর্ণনা করতে পারে।
- যেকোন নিয়মিত ভাষা (যার বর্ণমালার মধ্যে সীমাবদ্ধ সংখ্যার অক্ষর রয়েছে) বর্ণনা করার আর একটি উপায় হ'ল বিড়ম্বনহীন অটোমেটনস (সীমাবদ্ধ সংখ্যক রাজ্য সহ)।
সীমাবদ্ধ সংখ্যার অক্ষর থাকাতে আমি এই অটোমেটনটি তৈরি করতে পারি: (উদাহরণ। ফর্মাল: নীচে দেখুন)
ব্যাকরণ যা "অ্যাবিসি" এর অনুমতি গ্রহণ করে:
(শীর্ষে সংখ্যার জন্য চটজলদি, সম্ভবত কেউ জানেন যে কীভাবে এই অংশটি আরও ভাল দেখাচ্ছে)
s -> আহ
s -> bh²
s -> ch³
h¹ -> bh¹¹
h¹ -> ch¹²
এইচ -> আহ (কোনও টাইপো নেই! সমতা)
h² -> bh²²
h² -> ch²³
h³ -> আহ ¹²
h³ -> bh²³
h¹¹ -> বিসি
h¹¹ -> সিবি
h¹² -> বিবি
h²² -> এসি
h²² -> ca
h²³ -> আব
h²³ -> বা
আরও আনুষ্ঠানিক: (একটি সসীম-রাষ্ট্র-অটোমেটন ব্যবহার করে তবে এটি ব্যাকরণ দিয়েও তৈরি করা যেতে পারে)
- একটি শব্দ কিউ (সীমাবদ্ধ দৈর্ঘ্য সহ) যাতে কোনও অনুচ্ছেদে গ্রহণযোগ্য অবস্থায় পৌঁছানো উচিত।
- এক্স সীমাবদ্ধ বর্ণমালা।
- রাজ্যের সেট এস-এ Q এর দৈর্ঘ্য পর্যন্ত কোনও অক্ষরের অর্ডার থাকে। (সুতরাং এস এর আকার সীমাবদ্ধ)) প্লাস ওয়ান স্টেট "আর কোনও শব্দ"।
- রাষ্ট্রের রূপান্তর ফাংশন ডি যা একটি চিঠি নেয় এবং সেই রাজ্যে চলে যে শব্দটির এখন পড়ার অংশের সাথে মিল রাখে।
- এফ হ'ল একটি রাজ্য যা Q এর যথাযথ ক্রিয়াকলাপ।
সুতরাং প্রদত্ত শব্দের অনুমতি গ্রহণের জন্য একটি সসীম-রাষ্ট্রীয় অটোম্যাটন তৈরি করা সম্ভব।
প্রমাণ সহ চলমান
সুতরাং আমি প্রমাণিত করেছি যে নিয়মিত ভাষাগুলিতে ক্রমবিধি যাচাই করার ক্ষমতা আছে, তাই না?
তাহলে কেন রেজিেক্সসের সাথে এটি পৌঁছানোর কোনও পন্থা নেই? এটি একটি দরকারী কার্যকারিতা।
^(a()|a()|b()|c()){4}\2\3\4\5$
বলে মনে হচ্ছে : কাজ করছে বলে মনে হচ্ছে ( regex101.com/r/9URPpg/4/tests দেখুন )।