似乎您可能希望同时使用
s速记字符类和
p{Zs}Unipre属性来匹配Unipre空间。但是,这两个步骤都不能用1个正则表达式替换来完成,因为您需要两个不同的替换,并且ReplaceAllStringFunc只允许使用整个匹配字符串作为参数(我不知道如何检查哪个组匹配)。
因此,我建议使用两个正则表达式:
^[sp{Zs}]+|[sp{Zs}]+$-匹配所有前导/尾随空格[sp{Zs}]{2,}-匹配字符串中的2个或更多空格符号
样例代码:
package mainimport ( "fmt" "regexp")func main() { input := " Text More here " re_leadclose_whtsp := regexp.MustCompile(`^[sp{Zs}]+|[sp{Zs}]+$`) re_inside_whtsp := regexp.MustCompile(`[sp{Zs}]{2,}`) final := re_leadclose_whtsp.ReplaceAllString(input, "") final = re_inside_whtsp.ReplaceAllString(final, " ") fmt.Println(final)}


