У меня есть небольшая сложная проблема с регулярным выражением golang. похоже \b
boundering опция не работает когда я поместил latein chars подобный это.Golang regexp Граница с латинским символом
Я ожидал, что é
следует рассматривать как обычный символ. , но он рассматривается как один из базирующихся палат.
package main
import (
"fmt"
"regexp"
)
func main() {
r, _ := regexp.Compile(`\b(vis)\b`)
fmt.Println(r.MatchString("re vis e"))
fmt.Println(r.MatchString("revise"))
fmt.Println(r.MatchString("révisé"))
}
результат был:
true
false
true
Пожалуйста, дайте мне какие-либо предложения, как бороться с r.MatchString("révisé")
как false
?
Спасибо
Да, границы слова '\ b' поддерживают только ASCII - документы говорят' на границе слова ASCII (\ w на одной стороне и \ W, \ A или \ z на другом) '. Единственный вариант, возможно, явно соответствует символам, которые вы считаете границей слов в регулярном выражении (пробелы, новые строки, полные остановки, конец строки и т. Д.) –