作為一個簡化的例子,我想得到^? $匹配???以產生???.
r := regexp.MustCompile("^? $")
matches := r.FindString("??????")
fmt.Println(matches)
但即使這適用于常規 ASCII 字符,它也不會成功匹配。
我猜我對 Unicode 匹配有些不了解,但我還沒有在檔案中找到任何體面的解釋。
有人可以解釋這個問題嗎?

因此,您需要一個正則運算式來匹配包含一個或多個\x{2B1B}和\x{FE0F}字符組合的字串,直到字串結束。
所以你需要使用
^(?:\x{2B1B}\x{FE0F}) $
請參閱正則運算式演示。
請注意,您可以使用它\p{M}來匹配任何變音符號:
^(?:\x{2B1B}\p{M}) $
請參閱Go 演示:
package main
import (
"fmt"
"regexp"
)
func main() {
r := regexp.MustCompile(`^(?:\x{2B1B}\x{FE0F}) $`)
matches := r.FindString("??????")
fmt.Println(matches)
}
uj5u.com熱心網友回復:
正則運算式匹配包含一個或多個?(黑色方框)的字串。
主題字串是三對黑色方框和變體 selector-16。變體選擇器是不可見的(在我的終端上)并防止匹配。
通過從主題字串中洗掉變體選擇器或將變體選擇器添加到模式來修復。
這是第一個修復:https ://go.dev/play/p/oKIVnkC7TZ1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479774.html
上一篇:洗掉字串中的尾括號
