שימוש בביטויים רגולריים

Ruby:
שימוש בביטויים רגולריים

איך ל:

התאמה בסיסית

כדי להתאים מחרוזת לדפוס פשוט, ניתן להשתמש במתודת match. למטה, אנו בודקים אם המילה “Ruby” קיימת במחרוזת נתונה.

if /Ruby/.match("Hello, Ruby!")
  puts "נמצאה התאמה!"
end
# Output: נמצאה התאמה!

התאמת דפוסים עם משתנים

ניתן להטמיע משתנים בביטוי הרגולרי שלכם באמצעות תחביר ה-#{} , מה שהופך את הדפוסים שלכם לדינמיים.

language = "Ruby"
if /#{language}/.match("תכנות בRuby זה כיף.")
  puts "מדברים על Ruby!"
end
# Output: מדברים על Ruby!

שימוש בביטויים רגולריים לצורך החלפה

המתודה gsub מאפשרת לכם להחליף כל תופעה של דפוס במחרוזת החלפה שצוינה.

puts "foobarfoo".gsub(/foo/, "bar")
# Output: barbarbar

לכידה

סוגריים בביטוי רגולרי משמשים ללכידת חלקים מההתאמה. המתודה match מחזירה אובייקט מסוג MatchData, שניתן להשתמש בו כדי לגשת ללכידות.

match_data = /(\w+): (\d+)/.match("Age: 30")
puts match_data[1] # תווית שנלכדה
puts match_data[2] # ערך שנלכד
# Output:
# Age
# 30

שימוש בספריות צד שלישי

למרות שספריית הסטנדרט של רובי חזקה, לפעמים עשויים להיות צורך בפונקציונליות מתמחה יותר. גם עבור עבודה עם ביטויים רגולריים, Oniguruma הוא gem פופולרי, המספק תכונות נוספות מעבר למנוע הביטויים הרגולריים הטמע ברובי.

התקנה באמצעות:

gem install oniguruma

שימוש בדוגמה יכול להיראות כך (בהנחה שדרשתם את oniguruma לאחר ההתקנה):

# זוהי דוגמה מתקדמת יותר ועשויה לדרוש הגדרה נוספת
require 'oniguruma'

pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("מספר הוא 42.")
puts match_data[1]
# Output: 42

זכרו, למרות שהם חזקים, ביטויים רגולריים יכולים להפוך למורכבים וקשים לניהול עבור דפוסים מורכבים יותר. שאפו לקריאות, ושקלו שיטות חלופיות אם הביטוי הרגולרי שלכם הופך ליותר מידי מסובך.