রেগুলার এক্সপ্রেশন ব্যবহার করা

Ruby:
রেগুলার এক্সপ্রেশন ব্যবহার করা

কীভাবে:

বেসিক ম্যাচিং

একটি স্ট্রিংকে সাধারণ প্যাটার্নের সাথে ম্যাচ করার জন্য, আপনি match মেথড ব্যবহার করতে পারেন। নীচে, আমরা যাচাই করছি যে কোনো নির্দিষ্ট স্ট্রিংয়ের মধ্যে “Ruby” শব্দটি আছে কিনা।

if /Ruby/.match("Hello, Ruby!")
  puts "Match found!"
end
# আউটপুট: Match found!

ভ্যারিয়েবল সহ প্যাটার্ন ম্যাচিং

আপনি আপনার রেগেক্সে ভ্যারিয়েবল ইন্টারপোলেট করতে #{} সিনট্যাক্স ব্যবহার করতে পারেন, যা আপনার প্যাটার্নগুলিকে গতিশীল করে।

language = "Ruby"
if /#{language}/.match("Programming in Ruby is fun.")
  puts "Talking about Ruby!"
end
# আউটপুট: Talking about Ruby!

সাবস্টিটিউশন এর জন্য রেগেক্স ব্যবহার করা

gsub মেথড আপনাকে একটি প্যাটার্নের প্রতিটি ঘটনা নির্দিষ্ট প্রতিস্থাপন স্ট্রিং দিয়ে প্রতিস্থাপন করতে দেয়।

puts "foobarfoo".gsub(/foo/, "bar")
# আউটপুট: barbarbar

ক্যাপচারিং

রেগেক্সের মধ্যে বন্ধনীগুলি কোনো ম্যাচের কিছু অংশ গ্রহণ করার জন্য ব্যবহৃত হয়। match মেথডটি একটি MatchData অবজেক্ট প্রদান করে, যা আপনি গ্রহণগুলি অ্যাক্সেস করার জন্য ব্যবহার করতে পারেন।

match_data = /(\w+): (\d+)/.match("Age: 30")
puts match_data[1] # গ্রহণ করা লেবেল
puts match_data[2] # গ্রহণ করা মান
# আউটপুট:
# Age
# 30

থার্ড-পার্টি লাইব্রেরী ব্যবহার করা

যদিও রুবির স্ট্যান্ডার্ড লাইব্রেরী শক্তিশালী, আপনি মাঝে মাঝে আরও বিশেষায়িত ফাংশনালিটি প্রয়োজন পেতে পারেন। রেগেক্স নিয়ে কাজ করার জন্য একটি জনপ্রিয় জেম হল Oniguruma, যা বিল্ট-ইন রুবি রেগেক্স ইঞ্জিনের তুলনায় অতিরিক্ত রেগেক্স বৈশিষ্ট্য প্রদান করে।

এটি ইনস্টল করুন এর মাধ্যমে:

gem install oniguruma

ডাউনলোড করে oniguruma রিকোয়্যার করার পর এর ব্যবহার এরকম হতে পারে:

# এটি একটি আরও উন্নত উদাহরণ এবং অতিরিক্ত সেটআপের প্রয়োজন পড়তে পারে
require 'oniguruma'

pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("The number is 42.")
puts match_data[1]
# আউটপুট: 42

মনে রাখবেন, শক্তিশালী হলেও, জটিল প্যাটার্নের জন্য নিয়মিত প্রকাশী জটিল এবং পরিচালনা করা কঠিন হতে পারে। পাঠ্যতার উদ্দেশ্যে লক্ষ্য রাখুন, এবং যদি আপনার রেগেক্স খুব জটিল হয়ে যায়, তাহলে বিকল্প পদ্ধতি বিবেচনা করুন।