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