github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/pkg/utils/string/match.go (about)

     1  package stringUtils
     2  
     3  import (
     4  	"regexp"
     5  	"strings"
     6  )
     7  
     8  func MatchString(expect string, actual string, langType string) bool {
     9  	expect = strings.TrimSpace(expect)
    10  	actual = strings.TrimSpace(actual)
    11  
    12  	expect = strings.Replace(expect, "%s", `.+?`, -1)                                  // 字符串
    13  	expect = strings.Replace(expect, "%i", `[+\-]?[0-9]+`, -1)                         // 十进制数字,可有符号
    14  	expect = strings.Replace(expect, "%d", `[0-9]+`, -1)                               // 十进制数字,无符号
    15  	expect = strings.Replace(expect, "%x", `[0-9a-fA-F]+`, -1)                         // 十六进制数字
    16  	expect = strings.Replace(expect, "%f", `[+\-]?\.?[0-9]+\.?[0-9]*(E-?[0-9]+)?`, -1) // 十进制浮点数
    17  	expect = strings.Replace(expect, "%c", ".", -1)                                    // 单个字符
    18  
    19  	pass, _ := regexp.MatchString(expect, actual)
    20  	return pass
    21  }