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זכרו, למרות שהם חזקים, ביטויים רגולריים יכולים להפוך למורכבים וקשים לניהול עבור דפוסים מורכבים יותר. שאפו לקריאות, ושקלו שיטות חלופיות אם הביטוי הרגולרי שלכם הופך ליותר מידי מסובך.