我想要一个从字符串中删除重音的功能.输入/输出示例:
regardé -> regarde
fête -> fete
Run Code Online (Sandbox Code Playgroud)
Ada*_*mes 15
该text-icu库包含各种Unicode实用程序.我们还需要text库来将Strings 转换为Text.我通过build-depends在我的cabal文件中添加以下两行来安装它们:
build-depends: --- other packages...
, text-icu >= 0.7.0.1 && < 1
, text
Run Code Online (Sandbox Code Playgroud)
安装这些依赖项后,我们可以使用以下过程删除重音:
String为TextString.牢记这一切,我们提出以下功能:
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)
Run Code Online (Sandbox Code Playgroud)
如果您不需要转换为a String,则可以跳过T.pack和T.unpack调用.