পাইথনের রেগুলার এক্সপ্রেশনের Greedy এবং Nongreedy Matching সম্পর্কে জানতে চাই।

asked 09 Sep '16, 13:45

Asaduzzaman%20Sohel's gravatar image

Asaduzzaman Sohel
18610


গ্রিডি পদ্ধতিতে রেগুলার এক্সপ্রেশন সবচেয়ে দীর্ঘ স্ট্রিং, যা কী না রেগুলার এক্সপ্রেশনের সাথে ম্যাচ করে, সেটা খুঁজে বের করে। আর নন-গ্রিডি বা অলস (lazy) পদ্ধতিতে সবচেয়ে ছোট স্ট্রিং, যা কী না রেগুলার এক্সপ্রেশনের সাথে ম্যাচ করে, সেটা খুঁজে বের করে। ধরা যাক, "programabad.com is a website where you can ask computer related questions" - এই লাইন থেকে আমরা programabad.com অংশটি আলাদা করতে চাই, বা খুঁজে বের করতে চাই। তাহলে আমি রেগুলার এক্সপ্রেশন লিখবে (p.+?com) আর প্রোগ্রামটি programabad.com খুঁজে পাবে। কিন্তু যদি লিখতাম (p.+com), তাহলে কী হত? নিচের কোড লক্ষ করলেই বুঝতে পারা যাবে:

>>> import re
>>> text = "programabad.com is a website where you can ask computer related questions"
>>> pattern1 = re.compile('(p.+?com)')
>>> re.findall(pattern1, text)
['programabad.com']
>>> pattern2 = re.compile('(p.+com)')
>>> re.findall(pattern2, text)
['programabad.com is a website where you can ask com']
permanent link

answered 10 Sep '16, 18:52

Tamim%20Shahriar%20Subeen's gravatar image

Tamim Shahriar Subeen ♦♦
6.0k1126

আপনাকে অনেক ধন্যবাদ।

(14 Sep '16, 17:44) Asaduzzaman Sohel
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×36

question asked: 09 Sep '16, 13:45

question was seen: 364 times

last updated: 14 Sep '16, 17:44