首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 15:18:32 +08:00
commit d6393266b0
193 changed files with 14287 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
package main
import (
"fmt"
"regexp"
"strconv"
)
func main() {
// 1、字符串反向引用脱敏 ReplaceAllString
mobileRe := regexp.MustCompile(`(\d{3})\d{4}(\d{4})`)
phone := "12311111111"
// $$ 转义输出单个字面$
res1 := mobileRe.ReplaceAllString(phone, "前缀$$ $1****$2 后缀")
fmt.Println("1.ReplaceAllString 手机号脱敏+$转义:", res1)
// 命名捕获组搭配${name}格式
nameRe := regexp.MustCompile(`姓名:(?P<name>[\p{Han}]+)`)
userText := "姓名:王五"
resName := nameRe.ReplaceAllString(userText, "用户${name}已登记")
fmt.Println("命名捕获组替换:", resName)
// 2、字面量&常规替换核心对比(带捕获组,差异肉眼可见)
litStr := "价格$100,优惠$20"
numRe := regexp.MustCompile(`(\d+)`)
res2Normal := numRe.ReplaceAllString(litStr, "数值$1")
res2Lit := numRe.ReplaceAllLiteralString(litStr, "数值$1")
fmt.Println("2.ReplaceAllString 解析捕获组$1", res2Normal)
fmt.Println("2.ReplaceAllLiteralString 纯字面$1", res2Lit)
// 3、动态回调替换 ReplaceAllStringFunc
priceText := "金额:10、20、50"
res3 := numRe.ReplaceAllStringFunc(priceText, func(s string) string {
val, _ := strconv.Atoi(s)
return strconv.Itoa(val * 2)
})
fmt.Println("3.ReplaceAllStringFunc 数值翻倍:", res3)
// ---------------------- []byte 字节系列替换API ----------------------
bytePhone := []byte("12311111111")
// 4.ReplaceAll 字节版反向引用
resByte1 := mobileRe.ReplaceAll(bytePhone, []byte("$1****$2"))
fmt.Println("4.ReplaceAll 字节脱敏:", string(resByte1))
// 5.ReplaceAllLiteral 字节字面量演示
byteSrc := []byte("积分30")
resByte2 := numRe.ReplaceAllLiteral(byteSrc, []byte("分数$1"))
fmt.Println("5.ReplaceAllLiteral 字节字面量:", string(resByte2))
// 6.ReplaceAllFunc 字节回调自定义逻辑
bytePrice := []byte("标价5 标价15")
resByte3 := numRe.ReplaceAllFunc(bytePrice, func(b []byte) []byte {
val, _ := strconv.Atoi(string(b))
return []byte(strconv.Itoa(val + 10))
})
fmt.Println("6.ReplaceAllFunc 字节数值加10", string(resByte3))
}