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