Golang 正则表达式
优质
小牛编辑
143浏览
2023-12-01
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个 规则字符串,这个 规则字符串 用来表达对字符串的一种过滤逻辑。
相关规则标准详见
Go 语言中正则表达式使用步骤
- 1.创建一个正则表达式匹配规则对象
- 2.利用正则表达式匹配规则对象匹配指定字符串
package main import ( "strings" "fmt" ) func main() { // 创建一个正则表达式匹配规则对象 // reg := regexp.MustCompile(规则字符串) // 利用正则表达式匹配规则对象匹配指定字符串 // 会将所有匹配到的数据放到一个字符串切片中返回 // 如果没有匹配到数据会返回nil // res := reg.FindAllString(需要匹配的字符串, 匹配多少个) str := "Hello 李南江 1232" reg := regexp.MustCompile("2") res := reg.FindAllString(str, -1) fmt.Println(res) // [2 2] res = reg.FindAllString(str, 1) fmt.Println(res) // [2] }
匹配电话号码
package main import ( "strings" "fmt" ) func main() { res2 := findPhoneNumber("13554499311") fmt.Println(res2) // true res2 = findPhoneNumber("03554499311") fmt.Println(res2) // false res2 = findPhoneNumber("1355449931") fmt.Println(res2) // false } func findPhoneNumber(str string) bool { // 创建一个正则表达式匹配规则对象 reg := regexp.MustCompile("^1[1-9]{10}") // 利用正则表达式匹配规则对象匹配指定字符串 res := reg.FindAllString(str, -1) if(res == nil){ return false } return true }
匹配 Email
package main import ( "strings" "fmt" ) func main() { res2 = findEmail("123@qq.com") fmt.Println(res2) // true res2 = findEmail("ab?de@qq.com") fmt.Println(res2) // false res2 = findEmail("123@qqcom") fmt.Println(res2) // false } func findEmail(str string) bool { reg := regexp.MustCompile("^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+") res := reg.FindAllString(str, -1) if(res == nil){ return false } return true }