Elm:
שימוש בביטויים רגולריים
איך ל:
ב-Elm אין פונקציות regex מובנות בספרייה המרכזית שלה, מה שדורש שימוש בספריות צד שלישי לפעולות אלו. אחת מהאפשרויות הפופולריות לעבודה עם regex היא elm/regex
. ניתן להוסיף אותה לפרויקט שלך באמצעות elm install elm/regex
.
הנה איך אפשר להשתמש ב-elm/regex
למשימות נפוצות כמה:
1. התאמה לתבנית
כדי לבדוק אם מחרוזת תואמת לתבנית, ניתן להשתמש ב-Regex.contains
.
import Regex
pattern : Regex.Regex
pattern = Regex.fromString "^[a-zA-Z0-9]+$" |> Maybe.withDefault Regex.never
isAlphanumeric : String -> Bool
isAlphanumeric input = Regex.contains pattern input
-- דוגמה לשימוש:
isAlphanumeric "Elm2023" -- פלט: True
isAlphanumeric "Elm 2023!" -- פלט: False
2. מציאת כל ההתאמות
כדי למצוא את כל המופעים של תבנית בתוך מחרוזת, ניתן להשתמש ב-Regex.find
.
matches : Regex.Regex
matches = Regex.fromString "\\b\\w+\\b" |> Maybe.withDefault Regex.never
getWords : String -> List String
getWords input =
input
|> Regex.find matches
|> List.map (.match)
-- דוגמה לשימוש:
getWords "Elm is fun!" -- פלט: ["Elm", "is", "fun"]
3. החלפת טקסט
כדי להחליף חלקים ממחרוזת שתואמים לתבנית, משתמשים ב-Regex.replace
.
replacePattern : Regex.Regex
replacePattern = Regex.fromString "Elm" |> Maybe.withDefault Regex.never
replaceElmWithHaskell : String -> String
replaceElmWithHaskell input =
Regex.replace replacePattern (\_ -> "Haskell") input
-- דוגמה לשימוש:
replaceElmWithHaskell "Learning Elm is fun!"
-- פלט: "Learning Haskell is fun!"
בדוגמאות אלו, משתמשים ב-Regex.fromString
כדי לקומפל regex pattern, שבו \b
מתאים לגבולות מילים, ו-\w
מתאים לכל תו של מילה. תמיד נהוג לטפל בתוצאת Maybe
של Regex.fromString
כדי להגן על נגד תבניות regex לא תקינות, בדרך כלל באמצעות Maybe.withDefault
.