golang正则表达式

在工作中我自己关于正则表达式的用法

例如匹配文件名

var (
	fileNamePattern = "^[^+-./\t\b@#$%*()\\[\\]][^/\t\b@#$%*()\\[\\]]{1,254}$"
	fileRegex       = regexp.MustCompile(fileNamePattern)
)

func main() {
	text := os.Args[1]
	res := fileRegex.FindAllString(text, -1)
	isValid := len(res) != 0
	fmt.Println(isValid)
}

码工具

问号可以跟在原字符后面, 表示非贪婪匹配;

go 标准库

go标准库的正则表达式的用法
根据正则表达式获取re对象:

re := regexp.MustCompile(IPPattern) // re as *regexp.Regexp
re.FindAllString(text, -1) // return slice

完整代码

func testRe() {  
    textTrue := "{asdfasdfasdf}"  
    text1 := "asdfasdf"  
    pattern := `\{.+\}`  
    regex := regexp.MustCompile(pattern)  
    trueVal := regex.FindAllString(textTrue, -1)  
    if len(trueVal) != 0 {  
       fmt.Printf("success: trueVal got %v\n", len(trueVal))  
    }  
  
    firstVal := regex.FindAllString(text1, -1)  
    if len(firstVal) != 0 {  
       fmt.Printf("success: text1 got %v\n", len(firstVal))  
    }  
}
posted @ 2023-12-20 12:23  潜行1  阅读(36)  评论(0)    收藏  举报