Clojure:
Säännöllisten lausekkeiden käyttö
Kuinka:
Clojure, pysyen uskollisena juurilleen Lisp-perheessä, tarjoaa rikkaan joukon funktioita, jotka integroituvat saumattomasti Javan säännöllisten lausekkeiden ominaisuuksiin. Tässä on, miten voit hyödyntää niitä:
Perustason Vastaavuuden Tarkistus
Tarkistaaksesi vastaako merkkijono kuviota, käytä re-matches
. Se palauttaa koko vastineen, jos onnistuu, tai nil
muussa tapauksessa.
(re-matches #"\d+" "123") ;=> "123"
(re-matches #"\d+" "abc") ;=> nil
Kuvioiden Etsiminen
Etsiäksesi ensimmäistä kuvion esiintymää, käytä funktiota re-find
:
(re-find #"\d+" "Tilaus 123") ;=> "123"
Kaappaavat Ryhmät
Käytä re-find
funktiota yhdessä sulkujen kanssa kuviossasi kaappaavien ryhmien toteuttamiseksi:
(let [[_ alue koodi] (re-find #"(1)?(\d{3})" "Puhelin: 123-4567")]
(println "Aluekoodi:" alue "Koodi:" koodi))
;; Tuloste: Aluekoodi: nil Koodi: 123
Globaali Etsintä (Löydä Kaikki Vastineet)
Clojuressa ei ole sisäänrakennettua globaalia etsintätoimintoa kuten joissakin kielissä. Käytä sen sijaan re-seq
toimintoa saadaksesi laiskan sekvenssin kaikista vastineista:
(re-seq #"\d+" "id: 123, qty: 456") ;=> ("123" "456")
Merkkijonojen Jakaminen
Jaksaaksesi merkkijonon perustuen kuvioon, käytä clojure.string/split
:
(clojure.string/split "John,Doe,30" #",") ;=> ["John" "Doe" "30"]
Korvaaminen
Korvaa merkkijonon osia vastaavalla kuvioinnilla clojure.string/replace
avulla:
(clojure.string/replace "2023-04-01" #"\d{4}" "YYYY") ;=> "YYYY-04-01"
Kolmannen osapuolen Kirjastot
Vaikka Clojuren sisäänrakennettu tuki riittää useimmissa tapauksissa, monimutkaisempiin skenaarioihin kannattaa harkita kirjastojen, kuten clojure.spec
robustin datan validoinnin ja reagent
reaktiivisen DOM-manipuloinnin käyttöä web-sovelluksissa regex-pohjaisella reitityksellä ja syötteen validoinnilla.
;; Esimerkki käyttäen clojure.spec validoidakseen sähköpostin
(require '[clojure.spec.alpha :as s])
(s/def ::email (s/and string? #(re-matches #".+@.+\..+" %)))
(s/valid? ::email "[email protected]") ;=> true
Muista, vaikka säännölliset lausekkeet ovat tehokkaita, ne voivat myös tehdä koodista vaikealukuista ja ylläpidettävää. Käytä niitä harkiten ja harkitse aina yksinkertaisempia merkkijonojen käsittelyfunktioita, jos mahdollista.