নির্দিষ্ট সংখ্যার সংখ্যা সহ ভিএম অনুসন্ধান নম্বর


23

একটি বড় নথিতে আমার নির্দিষ্ট দৈর্ঘ্যের সংখ্যাগুলি সন্ধান করতে হবে। আমি এটির জন্য রেজেক্স ব্যবহার করার চেষ্টা করেছি। উদাহরণস্বরূপ, যদি আমার ঠিক 2 ডিজিট সহ সংখ্যাগুলি সন্ধান করতে হয় তবে আমি ব্যবহার করি \d\d(অর্থাত্ / d দ্বিগুণ একটি স্পেস অনুসরণ করবে)। এটি ভাল কাজ করে।

তবে 10 সংখ্যার সংখ্যা অনুসন্ধান করার জন্য এটি \d10 বার টাইপ করা সত্যিই সম্ভব নয় ।

চেষ্টা করেছেন \d{2}, বলেছেন ' E486: প্যাটার্নটি পাওয়া যায় নি: \ d {2} '

এটি অর্জনের জন্য কি আরও দ্রুত / সহজ উপায় আছে?

উত্তর:


32

বিভিন্ন নিয়মিত প্রকাশের উপভাষা রয়েছে; কিছু (যেমন পার্লের) কোয়ান্টিফিকেশন মডিফায়ার ( \d{2}) এর জন্য ব্যাকস্ল্যাশগুলির প্রয়োজন হয় না , কিছু (যেমন সেড) এর জন্য দুটি ( \d\{2\}) প্রয়োজন হয় এবং ভিমে কেবল খোলার কোঁকড়ানো এটির প্রয়োজন হয় ( \d\{2})। এটি বেমানান নিয়মিত অভিব্যক্তি উপভাষার করুণ অবস্থা।

এছাড়াও নোট করুন যে সঠিক সংখ্যার সাথে মিলে যাওয়ার জন্য আপনাকে ম্যাচটি অ্যাঙ্কর করতে \d\{2}হবে যাতে এটি অঙ্ক ( 12) এর সাথে মেলে না 123। এটি নেতিবাচক চেহারা-পিছনে এবং সামনের দিকে দেখুন দিয়ে করা যেতে পারে :

\d\@<!\d\{2}\d\@!

পারফেক্ট। আপনি কি রেজেক্সে একটি লাইনারের তথ্য দয়া করে পারেন? সত্যিই সহায়ক হবে। ধন্যবাদ
mtk

1
বেসিক regexp সিনট্যাক্সের সাথে লড়াই করা কারও পক্ষে লুক-পিছনে / এগিয়ে বেশ উন্নত। বিল্ট-ইন :help /\@<!এবং এর চেয়ে আমি সম্ভবত এটির চেয়ে ভাল বর্ণনা করতে পারি না :help /\@!। আপনি যদি তাত্ক্ষণিকভাবে সমস্ত কিছু বুঝতে না পারেন তবে চিন্তা করবেন না; যেমনটি আমি বলেছি, এটি বেশ উন্নত।
ইনগো কারকাত

এছাড়াও আপনি লাগাতে পারেন \vRegex শুরুতে যদি অব্যাহতি থাকার এড়িয়ে যেতে চান {, দেখুন :help magicআরও তথ্যের জন্য (এটা তেজ Regex আচরণ একটি, আরো Perl Regex মত বিট এখনও পার্থক্য আছে যদিও তোলে)।
অশুভ্রত

অনেক অনেক ধন্যবাদ: \d\{4}ভীতে এটি একেবারেই তুচ্ছ
ইনস্টলারের

9

নিম্নলিখিত চেষ্টা করুন:

\d\{2}

এবং আপনি ব্যবহার করা উচিত \নয়/

আপনি এই সাইটে বা vimসাথে ভিমে নিয়মিত এক্সপ্রেশন সম্পর্কে আরও জানতে পারেন :help regular



1

ততটা সুন্দর নয়, তবে এটি আমার জন্য লগ ফাইলে 5 ডিজিটের জন্য কাজ করেছে।

/\<\%(\d\d\d\d\d\)\>

-1

আমার মতো কারও পক্ষে এই পৃষ্ঠায় পৌঁছানো কোনও সংখ্যার দৈর্ঘ্যের সাথে মেলে এমন কোনও প্যাটার্ন সন্ধান করতে :

\d\+

(বাধ্যতামূলকভাবে অতিরিক্ত পলায়নের বিষয়টি জানতে আমার কিছুটা সময় লেগেছিল \ এর আগে))


+কোয়ান্টিফায়ার 1 বা তার বেশি সংখ্যার জন্য দাঁড়ায়। এই নিয়মিত প্রকাশটি 1 বা একাধিক সংখ্যার সংখ্যার সাথে মেলে।
gaganso
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.