我想知道如何删除:
单个正则表达式,对国际空格字符的unicode支持等是否可行?
似乎您可能希望同时使用\s速记字符类和\p{Zs}Unicode属性来匹配Unicode空间。但是,这两个步骤都不能用1个正则表达式替换来完成,因为您需要两个不同的替换,并且ReplaceAllStringFunc只允许使用整个匹配字符串作为参数(我不知道如何检查哪个组匹配)。
\s
\p{Zs}
ReplaceAllStringFunc
因此,我建议使用两个正则表达式:
^[\s\p{Zs}]+|[\s\p{Zs}]+$
[\s\p{Zs}]{2,}
样例代码:
package main import ( "fmt" "regexp" ) func main() { input := " Text More here " re_leadclose_whtsp := regexp.MustCompile(`^[\s\p{Zs}]+|[\s\p{Zs}]+$`) re_inside_whtsp := regexp.MustCompile(`[\s\p{Zs}]{2,}`) final := re_leadclose_whtsp.ReplaceAllString(input, "") final = re_inside_whtsp.ReplaceAllString(final, " ") fmt.Println(final) }