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") ;=> nilKuvioiden 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: 123Globaali 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]") ;=> trueMuista, 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.