একটি রেজেক্স ম্যাচের চারপাশে কয়েকটি লাইন কীভাবে ক্যাপচার করবেন?


8

ম্যাচ করা রেখার উপর দিয়ে কয়েকটি লাইনের সাথে মিলে যাওয়ার জন্য আমি একটি রেজেক্স এক্সপ্রেশনটি অনুসন্ধান করছি। উদাহরণ স্বরূপ:

ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX

আমি XXXXXXXX এর উপরে 2 লাইন ক্যাপচার করতে চাই।

কোন সাহায্য প্রশংসা করা হবে। দ্রষ্টব্য: পাইথন লাইব্রেরি রি ব্যবহার করে


1
কোন সফটওয়্যার ব্যবহার করছেন? একটি রিজএক্সপেক্স কী তা সম্পর্কে বিভিন্ন প্রোগ্রামের বিভিন্ন ধারণা থাকে।
ডেভিড রিচার্বি

পাইথন বিশেষভাবে বা কোনও সরঞ্জাম / ভাষায় ব্যবহার করছেন?
কেনারব

আপনি যদি অজগর ব্যবহার করে থাকেন তবে পুরোটিকে একটি অ্যারেতে ফেলা ভাল, যেখানে প্রতিটি সারি তার নিজস্ব উপাদান। তারপরে আপনি অ্যারের মাধ্যমে লুপ করে, এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স খুঁজে পেয়েছিলেন, একবার লাইনগুলি পেতে আইটেমের -1 এবং -2 এর সূচকটি ব্যবহার করে খুঁজে পেয়েছেন।
এলপিসিপ

হাই লোকটি পরামর্শের জন্য ধন্যবাদ, আমি এটি ইতিমধ্যে একটি লুপ দিয়েছিলাম তবে ভাবছি কীভাবে
রেজেক্সের

উত্তর:


15

নিম্নলিখিত RegEx লাইনের আগে পরিবর্তনশীল পরিমাণে রেখার জন্য পরীক্ষা XXXXXXXXকরে এবং প্রথম ক্যাপচার গ্রুপে তাদের প্রদান করে।

((.*\n){2})XXXXXXXX

  1. (.*\n)একটি স্ট্রিং \n, একটি নিউলাইন দিয়ে শেষের জন্য পরীক্ষাগুলি ।
  2. {2} এটি 2 বার পরিমাণে।
  3. () চারপাশে সমস্ত লাইনগুলি একটি ক্যাপচার গ্রুপে আসে তা নিশ্চিত করে।
  4. XXXXXXXX পাঠ্যটির সাথে শেষ হওয়া স্ট্রিংটি।

পাইথনে, আপনি p.match(regex)[0]প্রথম ক্যাপচার গ্রুপটি ফেরত দিতে ব্যবহার করতে পারেন।


4
সাবধান থাকুন এটি উইন্ডোজে সমস্যা সৃষ্টি করতে পারে। যদি তা হয় তবে ন্যায়বিচারের \r\nপরিবর্তে চেষ্টা করুন \n
কিউস - মনিকা 20

1
অবশ্যই, এটি কেবলমাত্র একটি লাইনের সাথে মিলবে যা দিয়ে শুরু হয় XXXXXXXX(তবে এটি অগত্যা শেষ হয় না XXXXXXXX)।
জি-ম্যান 23

0

এরিকগালের উত্তরে যুক্ত করা, কোনও ট্যাবস / সাদা স্থানের সাথে মেলে এক্সএক্সএক্সএক্সএক্সএক্সএক্স এর আগে * অতিরিক্ত ব্যবহার করুন।

((। * \ N) {2})। * Xxxxxxx


1
ঠিক আছে, কেবল ট্যাব / স্পেসের সাথে .*মেলে না ; এটি যে কোনও কিছুর সাথে মিলবে (উদাঃ, "দ্রুত ব্রাউন XXXXXXX")।
জি-ম্যান বলছেন 'মনিকাকে পুনরায় ইনস্টল করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.