Bir dizeden aksanları çıkarmak için bir işlev istiyorum. Örnek giriş/çıkış: text-icu
kütüphane Unicode araçlardan çeşitli içerirHaskell'deki bir dizeden aksanları nasıl temizlersiniz?
regardé -> regarde
fête -> fete
Bir dizeden aksanları çıkarmak için bir işlev istiyorum. Örnek giriş/çıkış: text-icu
kütüphane Unicode araçlardan çeşitli içerirHaskell'deki bir dizeden aksanları nasıl temizlersiniz?
regardé -> regarde
fête -> fete
. s ürünümüzü Text
'a dönüştürmek için text
kütüphanesine de ihtiyacımız olacak. Text
girdi String
dönüştürme
build-depends: --- other packages...
, text-icu >= 0.7.0.1 && < 1
, text
: Benim Cabal dosyasında build-depends
aşağıdaki iki satırı ekleyerek onları yüklü
String
'a dönüş.Tüm bunları göz önünde tutarak, aşağıdaki fonksiyonu ile gelip: Bir String
dönüştürmek için gerekmiyorsa
import Data.List
import qualified Data.Text as T
import Data.Text.ICU.Char
import Data.Text.ICU.Normalize
canonicalForm :: String -> String
canonicalForm s = T.unpack noAccents
where
noAccents = T.filter (not . property Diacritic) normalizedText
normalizedText = normalize NFD (T.pack s)
, sen T.pack
ve T.unpack
aramaları atlayabilirsiniz.