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!" -- ผลการทำงาน: False2. การหาครั้งทั้งหมด
เพื่อหาครั้งทั้งหมดของรูปแบบภายในสตริง, คุณสามารถใช้ 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, ที่ \b จับขอบเขตคำ, และ \w จับตัวอักษรภายในคำ ควรจัดการกับผลลัพธ์ Maybe จาก Regex.fromString เพื่อป้องกันรูปแบบ regex ที่ไม่ถูกต้อง, โดยทั่วไปใช้ Maybe.withDefault.