我有一个字符串,我想让它对 url 友好。该字符串可能如下所示:A string with $trange characters!".然后我想转义所有错误的 url 字符并最终得到a-string-with-trange-characters
在 Groovy 中实现此目的的最佳方法是什么?
在许多情况下,您可能不希望完全剥离非字母数字字符,而是首先分解它们:
\n\nimport java.text.Normalizer\n\nprintln Normalizer.normalize("String with \\$strang\\u00E9 chars", Normalizer.Form.NFD)\n .replaceAll(/[^A-z0-9 ]/, "")\n .replaceAll(/ +/, "-")\nRun Code Online (Sandbox Code Playgroud)\n\n上图中,\\u00E9是\'\xc3\xa9\'。分解将其变成字符“e”和组合标记“\xc2\xb4”。因此,当您应用转换时,结果是“奇怪-”而不是“奇怪-”。
请注意,这并不是获取给定字符串的 ASCII 友好版本的全部内容...它不会转换 \' \xc3\x9f例如,我不知道在 Java/Groovy 中执行此操作的最佳方法(在初始字符串上使用 toUpperCase().toLowerCase() 似乎有点“hacky”)。
\n| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |