在 Golang 中檢查 Rune 是否為 Unicode 標點字元


開發人員可以輕鬆地操作 Unicode 字元和符號。這要歸功於 Go 程式語言(也稱為 Golang)提供的廣泛的內建函式和包。在處理字串時,確定一個 rune(Unicode 程式碼點)是否為標點字元是一個常見問題。逗號、句號、感嘆號以及許多語言中用於標點的其他符號都是標點字元的示例。本文將探討如何使用 Golang 確定給定的 rune 是否為 Unicode 標點字元,並將包含示例程式碼以演示其工作原理。

使用“unicode”包

Golang 提供了“unicode”包,其中包含各種允許開發人員處理 Unicode 字元的函式。要檢查給定的 rune 是否為 Unicode 標點字元,我們可以使用“unicode”包提供的“IsPunct”函式。以下是一個演示如何使用此函式的示例程式碼片段:

示例

package main

import (
   "fmt"
   "unicode"
)

func main() {
   r1 := '!'
   r2 := 'a'
   r3 := ',' // Chinese comma character

   fmt.Println(unicode.IsPunct(r1)) // true
   fmt.Println(unicode.IsPunct(r2)) // false
   fmt.Println(unicode.IsPunct(r3)) // true
}

輸出

true
false
true

在此程式碼中,我們匯入“unicode”包並在三個不同的 rune 上呼叫“IsPunct”函式:'!'、'a' 和 ','(一箇中文逗號字元)。該函式對第一個和第三個 rune 返回“true”,它們都是標點字元,對第二個 rune 返回“false”,它不是。

使用正則表示式

檢查 rune 是否為 Unicode 標點字元的另一種方法是使用正則表示式。Golang 的內建“regexp”包支援 Unicode 正則表示式,可用於匹配字串中的 Unicode 字元。以下是一個演示如何使用正則表示式檢查 Unicode 標點字元的示例程式碼片段:

示例

package main

import (
   "fmt"
   "regexp"
)

func main() {
   r1 := '!'
   r2 := 'a'
   r3 := ',' // Chinese comma character
   
   re := regexp.MustCompile(`\p{P}`)

   fmt.Println(re.MatchString(string(r1))) // true
   fmt.Println(re.MatchString(string(r2))) // false
   fmt.Println(re.MatchString(string(r3))) // true
}

輸出

true
false
true

在此程式碼中,我們使用“regexp.MustCompile”函式建立一個正則表示式模式,該模式匹配任何 Unicode 標點字元。然後,我們使用“string”函式將它們轉換為字串,在每個 rune 上呼叫“MatchString”方法。“MatchString”函式對第一個和第三個 rune 返回“true”,它們是標點字元,對第二個 rune 返回“false”,它不是。

結論

確定 Golang 中給定的 rune 是否表示 Unicode 標點字元是一個簡單的過程,可以使用正則表示式或“unicode”包來執行。雖然“regexp”包使程式設計師能夠使用正則表示式匹配字串中的 Unicode 標點字元,但“unicode”包有一個簡單的“IsPunct”函式,如果提供的 rune 是 Unicode 標點字元,則返回 true。這些工具使 Golang 程式設計師能夠快速輕鬆地在程式中管理 Unicode 字元和符號。

更新於: 2023年4月7日

418 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.