এমন পংক্তির সন্ধান করুন যা একটি প্যাটার্ন ধারণ করে তবে এটিতে দ্বিতীয় প্যাটার্ন নেই


15

আমাকে এমন লাইনগুলি অনুসন্ধান করতে হবে যাতে কিছু শব্দ থাকে তবে দ্বিতীয় শব্দটি থাকে না

উদাহরণস্বরূপ, "রেড" শব্দটি নয় এমন লাইনগুলি সন্ধান করুন

যাতে এই লাইন থাকা ফাইলের জন্য

This is a blue coat
This is a red  coat
This is a purple coat
That is a coat

অনুসন্ধান কেবল প্রথম এবং তৃতীয় লাইন সনাক্ত করবে।

কোন পরামর্শের জন্য ধন্যবাদ!


আপনি লগিপ্যাট প্লাগইনটি ব্যবহার করতে পারেন যা নতুন ভিমস
ক্রিশ্চিয়ান ব্রাবাঁট

উত্তর:


23

আপনি এই আদেশটি ব্যবহার করে লাইনগুলি অন্তর্ভুক্ত রাখতে Thisএবং মুদ্রণ করতে পারেন red:

:g/\(.*This\)\&\(.*red\)\@!
  • \&যৌক্তিকের মতো শাখাগুলি পৃথক করে ANDকারণ আমরা এমন দুটি রেখা চাই যা দুটি শর্ত পূরণ করে (শাখা),
  • \(.*This\)এটি প্রথম শাখা, এটি কেবলমাত্র হতে পারে Thisতবে এটি আরও জেনেরিক,
  • \(.*red\)\@!যৌক্তিকের মতো দ্বিতীয় শাখা, এর \@!অর্থ "পূর্ববর্তী পরমাণুটি মেলে না তবে শূন্য প্রস্থের ম্যাচ" NOT

অন্য কথায়:

\(.*This\)  \&  \(.*red\)\@!
°°°°°°°°°°  °°  °°°°°°°°°°°°
'This'      AND NOT 'red'

অনেক ধন্যবাদ, এটি অনেকটা বিন্যাসিত পাঠ্যের মাধ্যমে একটি ক্যোয়ারির মতো। আমি ডাস্টাস্ট্রিংগুলি অনুপস্থিত ফাংশনগুলি সন্ধান করতে এটি ব্যবহার করতে সক্ষম হয়েছি।
জোশুয়া ডিটওয়েলার

1

এই পোস্টে একবার দেখুন।

@Romainl উত্তরের সাথে এটি একত্রিত করুন এবং আপনি যা চান তা করতে পারেন।

উদাহরণ: ধরা যাক আমি constযে ফাংশনগুলিতে নেই সেগুলিতে একটি যুক্ত করতে চাই ।

    handleChange = value => {

ভিআইএম স্ক্রিপ্ট:

%s/\([ ]*\)\(\w* = .*$\)\&^\(\&\(.*const.*\)\@!.\)*$/\1const \2/gc

আউটপুট:

    const handleChange = value => {

ব্যাখ্যা:

\([ ]*\)\(\w* = .*$\)

- যা আছে সব লাইন word =

\&

- বিধি সম্মিলন

^\(\&\(.*const.*\)\@!.\)*$

- লাইনে থাকা উচিত নয় const

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