Go 中的 Runes 包:转换重音字符
在 Go 中,一个常见的任务是将重音字符转换为非重音字符。一种方法涉及使用 unicode 包,例如norm 和text。然而,这些包对于初学者来说可能很复杂。
更简单的解决方案是使用 runes 包,它是在 Go 1.5(于 2015 年 8 月发布)和 Go 1.6(预计于 2016 年第一季度发布)中引入的。 runes 包提供了一种更直接的方法来删除非空格标记 (Mn),这些标记通常会导致重音。
以下是如何使用 runes 包从字符串中删除重音的示例:
<code class="go">import ( "fmt" "runes" "bytes" "code.google.com/p/go.text/transform" "code.google.com/p/go.text/unicode/norm" ) func main() { r := bytes.NewBufferString("Your Śtring") t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) r = transform.NewReader(r, t) fmt.Println(r) // Output: // Your String }</code>
此代码使用transform.Chain函数对字符串应用一系列转换。首先,字符串被分解为其 Unicode 规范化形式 (NFD),以将基本字符与重音符号分开。然后,应用 runes.Remove 函数来过滤掉属于 Mn(非空格标记)类别的任何符文。最后,字符串被组合回其规范化形式 (NFC),以删除任何剩余的变音标记。
因此,在删除非重音符号后,重音字符串“Your Śstring”将转换为“Your String” - 间距标记。
以上是如何使用 Runes 包去除 Go 中字符串的重音符号?的详细内容。更多信息请关注PHP中文网其他相关文章!