ভিআই তে রেজেক্স: গ্রুপগুলির মধ্যে কীভাবে একটি চরিত্র শ্রেণি ব্যবহার করে? (যেমন [\ s \ w])


15

ভিমে, চরিত্র শ্রেণিটি \sকোনও সাদা স্থানের অক্ষরের সাথে মেলে। আমি যখন দলে দলে ঐ বিশেষ অক্ষর ব্যবহার করছি যেমন [\s\w]এটি কোনো একক হোয়াইটস্পেস বা ওয়ার্ড চরিত্র মেলে না, এটি মেলে না sবা w

গ্রুপগুলির মধ্যে কেউ কীভাবে অক্ষর শ্রেণি ব্যবহার করে?


8
নিয়মিত এক্সপ্রেশন ইঞ্জিনের কিছু বাস্তবায়ন থেকে পৃথক, ভিমস এই স্বরলিপিটিকে সমর্থন করে বলে মনে হয় না। [[:space:][:alnum:]_]সংগ্রহ আনুমানিক ব্যবহার করা যেতে পারে \sএবং \wযদিও।
পিটার লেউরিন

@ পিটারলিওয়ারিন দয়া করে উত্তর হিসাবে পোস্ট করুন।
ক্রিস্টোফার বটমস

@ ক্রিস্টোফারবোটমস: সম্পন্ন হয়েছে।
পিটার লেউরিন

উত্তর:


11

এটি কোনও গোষ্ঠী নয়, এটি একটি পরিসীমা, এবং ভিমে আপনি চরিত্রের ক্লাস ব্যবহার করতে পারবেন না (যদিও এটি অন্যান্য রেজেক্স বাস্তবায়নের ক্ষেত্রে যেমন, পাইথনের ক্ষেত্রে এটি সম্ভব )। পরিবর্তে আপনাকে বিকল্প ব্যবহার করতে হবে:

/\(\w\|\s\)

বা:

/\v(\s|\w)

(অথবা, সমাধান প্রস্তাবিত দ্বারা পিটার Lewerin )।


2
কেবলমাত্র একটি চরিত্র শ্রেণিতে একটি অবৈধ পরিসীমা তৈরি করতে পারার অর্থ এই নয় যে \sএকটি অক্ষর শ্রেণীর মতো কিছু ব্যবহার করা সম্ভব হবে না । ভিমের রেজেক্স বাস্তবায়নটি সেই পছন্দটি করেছে, তবে অন্যান্য বাস্তবায়ন আপনাকে ব্যবহার করতে দেয় [\s]
জামেসান

@ ভ্যানলিজার আপনি যদি এই তথ্যের সাহায্যে উত্তরটি সম্পাদনা করেন ([\ গুলি] অন্য রেজেক্স-বাস্তবায়নের ক্ষেত্রে সম্ভাব্য তবে ভিমে নয়) আমি আপনার উত্তরটি মেনে নেব!
জন এইচকে

(ঠিক আছে, যোগ করা হয়েছে)
ভ্যানল্যাসার

11

নিয়মিত এক্সপ্রেশন ইঞ্জিনের কিছু প্রয়োগের বিপরীতে, ভিমের [\s\w]সংগ্রহগুলিতে সেই স্বরলিপিটি ( ) সমর্থন করে না বলে মনে হয় । যদিও কেউ POSIX অক্ষর শ্রেণীর এক্সপ্রেশন ব্যবহার করতে পারে ।

  • [:blank:]হিসাবে একই \s
  • [:space:]এর চেয়ে বৃহত্তর শ্বেতস্পেসের অক্ষরের সাথে মেলে \sএবং এর সমতুল্য বলে মনে হয় \_s
  • [:alnum:]প্রায় অনুমান করা হয় \w, তবে আন্ডারস্কোর ( _) এর সাথে মেলে না ।

সুতরাং আপনি যে সংগ্রহটি চেয়েছিলেন তা হিসাবে [[:blank:][:alnum:]_]বা হিসাবে লেখা যেতে পারে [[:space:][:alnum:]_]

আমি পরীক্ষার দ্বারা এই যাচাই করেন নি, কিন্তু এটি মধ্যে নথিভুক্ত করা :h regexp, :h /character-classesএবং :h /collection

বহনযোগ্যতা দ্রষ্টব্য: অন্যান্য রেইগেক্স ইঞ্জিনগুলিতে, \sসাধারণত [:space:](বা \_s) ভিমে যেমন থাকে তেমন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.