পাইথনে রেগুলার এক্সপ্রেশনে ক্যারেক্টার সেট
\d এবং \w ক্যারেক্টার গ্রুপগুলি
খুব নমনীয় নয়। এমনকি একটি সহজ কাজ,
যেমন সমস্ত অক্ষর খুঁজে বের করুন, কিন্তু সংখ্যা নয় -
সেগুলি দ্বারা সমাধান করা যায় না। এই ধরনের কাজের জন্য
বর্গাকার বন্ধনী ব্যবহার করা উচিত,
যা 'বা' অপারেশন প্রতিনিধিত্ব করে।
বর্গাকার বন্ধনী ভিতরে তালিকাভুক্ত যেকোন একটি
ক্যারেক্টারের প্রতিস্থাপন করে।
উদাহরণস্বরূপ, এভাবে: x[abc]x -
আমরা বলছি যে প্রান্তে x অক্ষর থাকতে হবে,
এবং ভিতরে - একটি ক্যারেক্টার: হয় 'a',
বা 'b', বা 'c'।
বর্গাকার বন্ধনীর পরে পুনরাবৃত্তি অপারেটর লিখতে পারেন।
উদাহরণস্বরূপ, এভাবে: x[abc]+x - আমরা বলছি যে x এর ভিতরে
যেকোন সংখ্যক 'a', 'b' এবং 'c' ক্যারেক্টার থাকতে পারে -
যেকোন সংমিশ্রণে।
শুধুমাত্র ক্যারেক্টার তালিকা করাই নয়,
দুটি ক্যারেক্টারের মধ্যে হাইফেন লিখে ক্যারেক্টার গ্রুপও
তৈরি করতে পারেন। উদাহরণস্বরূপ, এভাবে: [a-d] -
আমরা 'a' থেকে 'd' পর্যন্ত সমস্ত ক্যারেক্টার পাই।
আসুন উদাহরণ দেখি।
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'z' পর্যন্ত যেকোন অক্ষর:
কোড এক্সিকিউট করার ফল:
'! ! ! x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'k' পর্যন্ত যেকোন অক্ষর:
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! ! xmx x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'A' থেকে 'Z' পর্যন্ত যেকোন অক্ষর:
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'xax ! xcx x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 0 থেকে 9 পর্যন্ত যেকোন সংখ্যা:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'xax ! ! ! x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 3 থেকে 7 পর্যন্ত যেকোন সংখ্যা:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'xax x1x ! ! x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'z' পর্যন্ত যেকোন অক্ষর বা 1 থেকে 9 পর্যন্ত সংখ্যা:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! ! ! ! x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'z' পর্যন্ত যেকোন অক্ষর বা 'A' থেকে 'Z' পর্যন্ত যেকোন অক্ষর:
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! ! ! x5x x@x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'z' পর্যন্ত যেকোন অক্ষর বা 1, 2 সংখ্যা:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! ! ! ! x3x'
উদাহরণ
এই উদাহরণে, অনুসন্ধান প্যাটার্নটি দেখতে এমন:
x এর মধ্যে 'a' থেকে 'z' পর্যন্ত অক্ষর 1 বা তার বেশি সংখ্যায়:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'xx ! ! ! x123x xa3x'
উদাহরণ
আসুন এমন করি যাতে অক্ষরের সংখ্যা শূন্যও হতে পারে:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
ফলস্বরূপ আমরা পাব:
'! ! ! ! x123x xa3x'
উদাহরণ
বর্গাকার বন্ধনীর ভিতরে এস্কেপ করা ক্যারেক্টারও উল্লেখ করা যায়। আসুন অক্ষর এবং সংখ্যার একটি ক্রম খুঁজে বের করি, যা শূন্য বা তার বেশি বার পুনরাবৃত্তি হয়:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! x@x ! ! !'
উদাহরণ
যদি আমাদের আরও বর্গাকার বন্ধনী নির্দিষ্ট করতে হয়, তবে সেগুলিও আমরা অবশ্যই এস্কেপ করব:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
কোড এক্সিকিউট করার ফল:
'! ! ! x3x'
ব্যবহারিক সমস্যা
একটি স্ট্রিং দেওয়া আছে:
txt = 'aba aea aca aza axa'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - 'b', 'e' বা 'x' অক্ষর।
একটি স্ট্রিং দেওয়া আছে:
txt = 'a1a a3a a7a a9a aba'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - 3 থেকে 6 পর্যন্ত সংখ্যা।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aba aea afa aha aga'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - 'a' থেকে 'g' পর্যন্ত অক্ষর।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aba aea afa aha aga'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - 'a' থেকে 'f' পর্যন্ত এবং 'j' থেকে 'z' পর্যন্ত অক্ষর।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aAa aea aEa aJa a3a'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - 'a' থেকে 'f' পর্যন্ত এবং 'A' থেকে 'D' পর্যন্ত অক্ষর।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - ছোট লাতিন অক্ষর, বাকিগুলিকে প্রভাবিত না করে।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - ছোট এবং বড় লাতিন অক্ষর, বাকিগুলিকে প্রভাবিত না করে।
একটি স্ট্রিং দেওয়া আছে:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
নিম্নলিখিত প্যাটার্ন অনুযায়ী একটি রেগুলার এক্সপ্রেশন লিখুন: প্রান্তে 'a' অক্ষর আছে,
এবং তাদের মধ্যে - ছোট লাতিন অক্ষর এবং সংখ্যা, বাকিগুলিকে প্রভাবিত না করে।