mulit-char ক্রম দ্বারা পৃথক করা vim রেকর্ডে অনুসন্ধান করুন


0

আমি এখন কয়েক সপ্তাহ ধরে উত্তর খুঁজছি, তবে আমি এখনও ক্ষতিতে আছি ...

আমার কাছে একটি ফাইল রয়েছে (ভিআইএম এডিট করা হচ্ছে) মাল্টি-লাইন রেকর্ডস সমন্বিত - মূলত অনুচ্ছেদে "\ n X n এক্স" দ্বারা পৃথক করা হয়েছে, যেখানে এক্স বিভিন্ন অক্ষর হতে পারে।

আমার দরকার, ভিমের অভ্যন্তরে, সমস্ত রেকর্ডে সন্ধান করা উচিত যাগুলিতে সমস্ত অনুসন্ধানী শব্দ রয়েছে (এবং অনুসন্ধান করা শব্দগুলি হাইলাইট করুন), সম্ভবত যখন এই শব্দগুলি অনুসন্ধানের নিদর্শনগুলি হয়।

এটি এই উপায়েও রাখা যেতে পারে: মাল্টি-লাইন অনুসন্ধানের প্যাটার্নের ফলাফলগুলি খুঁজতে আমি কীভাবে ভাইমকে বলব, যেখানে এই জাতীয় ফলাফলগুলিতে ক্রম "\ n \ n [aZ।, + * $ # @!]" থাকে না (" কারণ এই ধরণের ক্রমটি চাওয়া রেকর্ডগুলি পৃথক করে এবং এর মধ্যে প্রদর্শিত হয়)।

ধন্যবাদ!

# 1 সম্পাদনা করুন: আরও ভাল করে ব্যাখ্যা করতে, আমি প্রতিটি রেকর্ডের মধ্যে রেকর্ডের 5 টি নমুনা যুক্ত করছি: \ n \ n \ s_ \ s \ d + (যেখানে 0 গুলি 0x20 এবং _ বেশ কয়েকটি সম্ভাব্য এসকি চরগুলির মধ্যে একটি):

 * 110000000018BBRT Phasellus aliquet blandit tellus,
sed sollicitudin augue accumsan vel.

 + 978000220019KML  Mauris et hendrerit dolor, a dapibus ante.
  * Vestibulum viverra ultricies urna.

 ! 020007005289KML  Vestibulum a malesuada enim.
Cras a efficitur est.
Suspendisse in nulla a justo finibus tincidunt.

 x 949317999999BTVN Sed facilisis massa eget mattis feugiat.
  o Interdum et malesuada fames ac ante ipsum primis in faucibus.

 v 949317999999BTV  Vestibulum at lectus at neque malesuada venenatis.
 Aliquam.

উত্তর:


0

এটি আপনাকে সহায়তা করে কিনা তা আমি জানি না, তবে এখানে এমন একটি প্যাটার্ন রয়েছে যা কোনও সংমিশ্রণের সাথে মেলে redএবং blue(উভয় ক্রমে) কেবলমাত্র যদি দুজনেই দুটি খালি লাইনের দ্বারা বিভাজিত একটি ব্লকে উপস্থিত হয় ( \n\n\n; প্রথম নিউলাইনটি শেষ ব্লকের প্রান্ত থেকে হয় , তারপরে নতুন লাইনের জন্য দুটি; আপনার এটিকে আপনার সঠিক বিভাজকের সাথে মানিয়ে নিতে হবে)।

এটি উভয় redএবং blueউভয় ক্রমের সাথে একটি লাইনের মধ্যে মিলের জন্য মৌলিক প্যাটার্নটির উপর ভিত্তি করে :

/\%(red.*blue\)\|\%(blue.*red\)/

এবং তারপরে প্রতিটি শাখার সরল .*(বহু-লাইন) ব্লকগুলি প্রসারিত করে যাগুলির \n\n\nমধ্যে নেই।

red...blueব্লকের জন্য একটি শাখা , এবং অন্যগুলির জন্য blue...redব্লক:

/\%(red\_.\{-}\%(\n\n\n\|blue\)\)\@>\%(blue\)\@<=/
/\%(blue\_.\{-}\%(\n\n\n\|red\)\)\@>\%(red\)\@<=/

শেষ ফলাফলটি কেবল উভয়কেই একত্রিত করে এবং ভিমে বাগের কারণে পুরানো রেজিপ্সক্স ইঞ্জিনে স্যুইচ করে ।

/\%#=1\%(\%(red\_.\{-}\%(\n\n\n\|blue\)\)\@>\%(blue\)\@<=\)\|\%(blue\_.\{-}\%(\n\n\n\|red\)\)\@>\%(red\)\@<=/

যদি তা বোঝা যায় না বা খুব জটিল মনে হয় তবে অন্য কোনও পদ্ধতির প্রয়োজন হতে পারে (যেমন প্রথম একা একা লাইনে সমস্ত ব্লকে যোগদান করা, এটি আরও সহজ ম্যাচ তৈরি করে)। আপনি যেমন খুব সামান্য প্রসঙ্গ দিয়েছেন এবং কোনও সামগ্রী নেই, আমি এই বিষয়ে আরও মন্তব্য করতে পারি না।


কি দারুন! এই কাজ মনে হচ্ছে !!! ধন্যবাদ! আমি post n \ n \ s এর ডান ডিলিমিটার দিয়ে মূল পোস্টে সবেমাত্র 5 টি রেকর্ডের নমুনা যুক্ত করেছি \ s \ d + ... আমি আপনার "\ n \ n" n "" এর সাথে প্রতিস্থাপন করার চেষ্টা করেছি \ n \ n। ", এবং এখন পর্যন্ত এটি আমার চেষ্টা করা সমস্ত কিছুতে কাজ করে, আপনাকে ধন্যবাদ !!! এখন আমি অনুসন্ধান করা শেষ এক থেকে চারটি শব্দ থেকে কীভাবে সঠিক প্যাটার্ন তৈরি করতে পারি তা বোঝার চেষ্টা করব। আদর্শভাবে আমি <লিডার> 3 টিপুন এবং সর্বশেষ 3 টি শব্দ (বা সিম্পল / ললোম আইপিএস / সন্ধানী নিদর্শন) স্বয়ংক্রিয়ভাবে এই উন্মাদ কিন্তু কার্যকরী অনুসন্ধানের প্যাটার্নটি তৈরি করতে ব্যবহৃত হবে! আমি যদি পরিচালনা না করি তবে আমাকে এখানে আবার জিজ্ঞাসা করতে হবে ...
গেস্ট982374

এইচআরএম, এটিকে প্রসারিত করার কোনও উপায় কি আমরা লাল এবং নীল এবং সবুজকে সন্ধান করি? উদাহরণস্বরূপ, "লাল" এবং "নীল" রয়েছে তবে "সবুজ" নেই এমন রেকর্ডগুলির জন্য? আমি কেবল চেষ্টা করেছি /\%#=1\%(\%(red\_.\{-}\%(\n\n\n\|green\|blue\)\)\@>\%(blue\)\@<=\)\|\%(blue\_.\{-}\%(\n\n\n\|green\|red\)\)\@>\%(red\)\@<=/কিন্তু কৌশলটি মনে হচ্ছে না ... :(
अतिथि982374

নিয়মিত অভিব্যক্তিতে কিছু মিলছে না এমনটি বলা শক্ত এবং এটি ইতিমধ্যে খুব জটিল is আমি greenবিকল্প ব্লক বিভাজক করার চেষ্টা করব , তাই \n\n\n\|greenপরিবর্তে ব্যবহার করুন \n\n\n
ইনগো কারকাত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.