এর বিভিন্ন সরঞ্জাম এবং সংস্করণগুলি নিয়মিত প্রকাশের বিভিন্ন রূপকে সমর্থন করে। প্রত্যেকের ডকুমেন্টেশন আপনাকে বলবে যে তারা কী সমর্থন করে।
স্ট্যান্ডার্ডগুলি বিদ্যমান যাতে কোনও মান্যকারী সমস্ত অ্যাপ্লিকেশন জুড়ে পাওয়া যায় এমন ন্যূনতম বৈশিষ্ট্যগুলির সেটগুলিতে নির্ভর করতে পারে।
উদাহরণস্বরূপ, পসআইএক্স দ্বারা নির্দিষ্ট হিসাবে বেসিক নিয়মিত এক্সপ্রেশনগুলির সমস্ত আধুনিক বাস্তবায়ন sed
এবং grep
প্রয়োগ করে (কমপক্ষে একটি সংস্করণ বা মানের অন্যটি, তবে সেই মানটি গত কয়েক দশকগুলিতে সে ক্ষেত্রে খুব বেশি বিকশিত হয়নি)।
পজিক্স BRE এবং ERE এ আপনার [:alnum:]
চরিত্র শ্রেণি রয়েছে। এটি আপনার লোকালে অক্ষর এবং অঙ্কগুলির সাথে মেলে (নোট যে সিলে না থাকলে প্রায়শই অনেক কিছু অন্তর্ভুক্ত থাকে a-zA-Z0-9
)।
তাই:
grep -x '[[:alnum:]_]\{1,\}'
এক বা একাধিক alnums বা _ এর সাথে মেলে।
[\w]
POSIX দ্বারা ব্যাকস্ল্যাশ বা মেলানোর জন্য প্রয়োজনীয় w
। সুতরাং আপনি যেখানে উপলব্ধ grep
বা এমন কোনও sed
প্রয়োগ খুঁজে পাবেন না (অ-মানক বিকল্পগুলির মাধ্যমে না করে)।
\w
একা জন্য আচরণ POSIX দ্বারা নির্দিষ্ট করা হয় না, তাই বাস্তবায়ন তারা যা চায় তা করার অনুমতি দেওয়া হয়। জিএনইউ grep
যোগ করেছে অনেক দিন আগে।
গনুহ grep
(যদিও এটা তার নিজস্ব কপি এম্বেড করে) একটি নিজস্ব regexp ইঞ্জিন তবে এটা এখন গনুহ libc এর একটি ব্যবহার আছে ব্যবহৃত।
এটি আপনার লোকালে অ্যালাম এবং আন্ডারস্কোরের সাথে মেলে meant তবে বর্তমানে এটির একটি বাগ রয়েছে যে এটি কেবলমাত্র একক-বাইট অক্ষরগুলির সাথে মেলে (উদাহরণস্বরূপ, কোনও ইউটিএফ -8 লোকালে এটি স্পষ্টভাবে একটি অক্ষর নয় যদিও এটি মিলছে all যেখানে সমস্ত লোকাল যেখানে single একক é চরিত্র)।
এখানে একটা হয় \w
Perl regexp এবং PCRE মধ্যে regexp অপারেটর। পিসিআরই / পার্ল পোসিক্স নিয়মিত এক্সপ্রেশন নয়, এগুলি পুরোপুরি কেবল অন্য একটি জিনিস।
এখন, জিএনইউ যেভাবে grep -P
পিসিআরই ব্যবহার করে, এটি ছাড়াও একই সমস্যা পেয়েছে -P
। এটি ব্যবহার করে যদিও এটির চারপাশে কাজ করা যেতে পারে (*UCP)
(যদিও এটি ইউটিএফ 8 অ স্থানীয় অবস্থানেও পার্শ্ব প্রতিক্রিয়া রয়েছে)।
GNU sed
GNU libc এর নিজস্ব regexps এর জন্য regexs ব্যবহার করে। এটি এটি এমনভাবে ব্যবহার করে যদিও এটিতে জিএনইউর মতো বাগ নেই grep
।
জিএনইউ sed
পিসিআরই সমর্থন করে না। কোডটিতে কিছু প্রমাণ রয়েছে যা এর আগে চেষ্টা করা হয়েছিল, তবে এটি আর এজেন্ডায় রয়েছে বলে মনে হয় না।
আপনি যদি পার্লের নিয়মিত প্রকাশ চান perl
তবে কেবল ব্যবহার করুন ।
অন্যথায়, আমি বলতে চাই যে আপনার sed
/ এর নির্দিষ্ট প্রয়োগের একটি বোগাস অ-মানক বৈশিষ্ট্যের উপর নির্ভর করার পরিবর্তে grep
, মান এবং ব্যবহারের সাথে আঁকানো ভাল [_[:alnum:]]
।
[_[:alnum:]]
এটি একটি দুর্দান্ত কাজ যা আমাকে এটির মতো বাড়ানোর অনুমতি দেয়[\w/]
([_[:alnum:]/]
সেই ক্ষেত্রে)।