A-zA-Z এর বাইরে অক্ষরের সমন্বিত শব্দের মিল করুন


15

একটি শব্দের সাথে মেলে একটি ব্যবহার করতে পারেন

\v(\w+)

ভিএম সাহায্য থেকে :h \w :

word শব্দের অক্ষর: [0-9A-জা-জেড_]

ম্যানুয়ালটিতে বর্ণিত ঠিক এটি কাজ করে। যাইহোক, আমি এমন শব্দের সাথে মিল রাখতে চাই যাতে অক্ষরগুলিও থাকে a-z, যেমন: prästgårdenপ্রেস্টগ্রাডেনের\v(\w+) বিরুদ্ধে নিয়মিত প্রকাশের সাথে মিল রেখে তিনটি ম্যাচে ফল পাওয়া যায়:

prästgården
^^ ^^^ ^^^^

এর বাইরে অক্ষর যুক্ত শব্দের কীভাবে মিলবে a-z ? আমার স্থানীয় অবস্থান ইংরেজীতে সেট করা আছে এবং সম্ভব হলে আমি সেভাবেই রাখতে চাই।

সম্পাদনা করুন: শব্দগুলি কোনও একক লোকের সাথে সম্পর্কিত নয়, যেমন

prästgården
treść

পসিক্স অক্ষর শ্রেণীর ক্লাস (যেমন [[:alpha:]]\+এই ক্ষেত্রে) আপনি এখানে যা চান তা করার কথা বলে মনে করা হয়, তবে ভিম ডক্সের মতে ( :help regex) এটি দেয় না: "এই আইটেমগুলি কেবল 8-বিট অক্ষরের জন্য কাজ করে।" ওএস এক্স ১০.৮-তে ভিম .3.৩ এর সাথে এখানে কাজ করার ঘটনা ঘটে, তবে লিনাক্সে ভিম .3.৩ কাজ করে না, তাই আমি ধরে নিই এই ভিম সম্পর্কে অ্যাপল-নির্দিষ্ট কিছু রয়েছে যা এটির অনুমতি দেয়। আপনি আরও দেখতে পাবেন যে ভিম পার্ল বাইন্ডিংয়ের মাধ্যমে এটি করাও ব্যর্থ হয়, যদিও পার্লের খুব ভাল ইউনিকোড সমর্থন রয়েছে। আপনার কোনও বাহ্যিক পার্ল স্ক্রিপ্টে স্যুইচ করার দরকার হতে পারে, যাতে আপনি সম্পূর্ণ ইউনিকোড সমর্থন চালু করতে পারেন।
ওয়ারেন ইয়ং

যাইহোক, আপনি যদি পার্লের সাথে যান তবে আপনি \p{Word}পসিক্স অক্ষর শ্রেণীর পরিবর্তে ব্যবহার করতে চান । পার্লের পসিক্স অক্ষর শ্রেণীর পরিচালনা সংক্রান্ত অনেকগুলি ব্যতিক্রম ঘটনা রয়েছে, যা আপনি ইউনিকোড বৈশিষ্ট্যগুলি পরিবর্তে ব্যবহার করার সময় এড়াতে পারেন।
ওয়ারেন ইয়ং

উত্তর:


9

ভিম (version.৩ সংস্করণ হিসাবে) নিদর্শনগুলিতে অ-এএসসিআইআই অক্ষরের সমর্থনের ক্ষেত্রে খুব সীমাবদ্ধ। নির্দিষ্টভাবে,\w কেবলমাত্র ASCII বর্ণগুলির সাথে মেলে, যা সীমিত উপযোগী।

কয়েকটি অক্ষর শ্রেণীর নিদর্শন রয়েছে যা ইউনিকোড সমর্থন করে। আপনার আগ্রহের বিষয় \I, যা বড় এবং অক্ষর এবং কেবল অক্ষরের সাথে মিলবে _এবং আরও @। কমপক্ষে ডেবিয়ান স্কিজে (কোনও ইউটিএফ -8 লোকালে) ত্রুটি রয়েছে; উদাহরণস্বরূপ ×এবং ÷বর্ণগুলির সাথে মিলেছে তবে সমস্ত লাতিন উচ্চারণযুক্ত অক্ষরগুলি সঠিকভাবে স্বীকৃত বলে মনে হচ্ছে। \Iএর মাধ্যমে কনফিগার করা যায়isidentকমপক্ষে ASCII অংশের জন্য বিকল্পের যায়।

আপনি যদি গুরুতর ইউনিকোড সমর্থন চান তবে আপনাকে একটি বাহ্যিক সরঞ্জামের উপর নির্ভর করতে হবে। উদাহরণস্বরূপ perl -C -e '/\p{L}/'ইউটিএফ -8 অক্ষর মেলে (কোনও ইউটিএফ -8 লোকেল ধরে নেওয়া)।



2

এটি সিরিলিকের জন্যও কাজ করে

\v\k

আরও কিছুটা জটিল এবং সিরিলিকের সাথে ব্যর্থ

\v(\c[0-9a-z_[=a=][=c=][=e=][=i=][=l=][=n=][=o=][=r=][=s=][=t=][=u=][=y=][=z=]])

ডক

ভিম 7.4 এ পরীক্ষিত on


আমি [=l=]সেই তালিকায় যুক্ত করব যা কভার করবে ł(যেমন złoty) ইত্যাদিও। তবে এটি ইতিমধ্যে রাশিয়ানদের জন্য ব্যর্থ। যাইহোক, ভাগ করে নেওয়ার জন্য ধন্যবাদ।
মার্কো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.