আমি কি তৈরি করতে পারি: কেবলমাত্র লাইনের শেষ ম্যাচে এসগুলি পরিচালনা করতে পারে?


16

:s/pattern/replacementপ্রথম ম্যাচে এবং সমস্ততে পরিচালনা করে :s/pattern/replacement/g

শুধুমাত্র শেষেরটিতে কীভাবে পরিচালনা করবেন?

উত্তর:


18

আমি ব্যবহার করব \zs

:%s/.*\zspattern/replacement/

কিছুটা ব্যাখ্যা:

  • . যে কোনও একক চরিত্রকে উপস্থাপন করে
  • * লোভী মিলে প্রতিনিধিত্ব করে (যত বেশি সম্ভব)

তেজ আপনি শূন্য প্রস্থ নোঙ্গর ব্যবহার করতে পারেন \zsএবং \zeশুরু ও অনুসন্ধান প্যাটার্ন, যা আপনি মেলে ইচ্ছুক শেষে সংজ্ঞায়িত করতে। আপনার প্যাটার্নে আগে \zsএবং পরে যে কোনও কিছুই \zeপ্রতিস্থাপনের দ্বারা অকার্যকর থাকবে।

এটা সহজ বুঝতে তৈরি করতে হলে, আমি থেকে এই উদাহরণে ব্যবহার করতে চান সেটি উইকিয়া এর অনুসন্ধান এবং প্রতিস্থাপন :

ব্যবহার করে \zsএবং \zeকোনও প্যাটার্নের শুরু এবং শেষ সেট করে টাইপিং সংরক্ষণ করুন । উদাহরণস্বরূপ, পরিবর্তে:

:s/Copyright 2007 All Rights Reserved/Copyright 2008 All Rights Reserved/ 

ব্যবহার করুন:

:s/Copyright \zs2007\ze All Rights Reserved/2008/

আরও তথ্যের জন্য, দেখুন


আপনি দয়া করে \zsআপনার উত্তরে কী করে তার একটি প্রাথমিক বর্ণনা সরবরাহ করতে পারেন ?
চিরসবুজ

3
এটা তোলে এর মূল্য লক্ষ করেন, কারণ এই কাজ করে কারণ .*হয় লোভী
ওয়াইল্ডকার্ড

7

আপনি \(.*\)সমস্তকে গ্রুপ করে শেষ ম্যাচের জন্য অনুসন্ধান করতে পারেন তবে শেষ বারের মতো pattern। তারপরে বন্দী গোষ্ঠীর সাথে প্রস্থান করা \1, এবং যুক্ত করা replacement

:%s/\(.*\)pattern/\1replacement/

(এটি @ রুইচিরো \zsসমাধানের চেয়ে নিকৃষ্ট , এতে আপনার \1দৃষ্টিভঙ্গি কার্যকরীভাবে সমতুল্য, তবে আরও ভার্বোজ। (অন্যদিকে , কারওর জন্য মনে রাখা আরও সহজ হতে পারে, বিশেষত যদি তারা অন্য রেজেক্স স্বাদে অভ্যস্ত হয়।))
হারুন থোমা

0

সম্পূর্ণতার জন্য আমি ভেবেছিলাম আমি একটি বিকল্প পোস্ট করব। ভিমের একাধিক আইটেম রয়েছে যার মধ্যে কিছু বেশি নিয়মিত অভিব্যক্তি বর্ণনাকারী দাবির সাথে মিল (নেতিবাচক / ইতিবাচক চেহারা / চেহারা)। /programming/2973436/regex-lookahead-lookbehind-and-atomic-groups

\@!এক্ষেত্রে আমরা একটি নেতিবাচক চেহারা চাই , যার অর্থ আমরা দৃ we়ভাবে বলতে চাই যে আইটেমের পূর্ববর্তী পরমাণুটি প্যাটার্নের পরে ঘটে না । এক্ষেত্রে পরমাণু নিজেই অন্য যে কোনও কিছুর আগে প্যাটার্ন:

:%s/pattern\(.*pattern\)\@!/replacement/

প্রথম বন্ধনের অভ্যন্তরের অংশটি শূন্য-প্রস্থ এবং ম্যাচে অন্তর্ভুক্ত নয় তাই প্রতিস্থাপন দ্বারা প্রতিস্থাপিত হয় না।

:h \@!আরও তথ্যের :h pattern-multi-itemsজন্য বা অন্যান্য দর্শনীয় প্রকরণ সহ পুরো বিভাগের জন্য।

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