golang 正则校验身份证号号
时间: 2024-06-22 21:01:18 浏览: 205
在 Go 语言中,正则表达式(RegEx)是一种强大的工具,可以用来验证身份证号码的格式。中国身份证号码通常包含18位数字,格式为6位地区码+8位出生日期+3位顺序码+1位校验码。下面是一个简单的正则表达式示例,用于基本的校验:
```go
package main
import (
"regexp"
"fmt"
)
func isValidID(id string) bool {
regex := `^(^\d{15}$|^\d{18}$)(?:(\d{6})(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}(\d|X|x))?$`
re, err := regexp.Compile(regex)
if err != nil {
fmt.Println("Invalid regex:", err)
return false
}
return re.MatchString(id)
}
func main() {
id := "110101199001010012"
if isValidID(id) {
fmt.Println("Valid ID number.")
} else {
fmt.Println("Invalid ID number.")
}
}
//
相关问题
golang 正则表达式
Golang 中正则表达式的使用非常方便。你可以使用内置的 `regexp` 包来进行正则表达式的匹配和操作。下面是一个简单的示例代码,展示了如何使用正则表达式在字符串中查找匹配的内容:
```go
package main
import (
"fmt"
"regexp"
)
func main() {
str := "Hello, 12345 World!"
re := regexp.MustCompile(`\d+`)
match := re.FindString(str)
fmt.Println(match) // 输出: 12345
}
```
在上面的例子中,我们使用 `regexp.MustCompile()` 函数来创建一个正则表达式对象,然后使用 `FindString()` 方法在字符串中查找符合正则表达式的第一个匹配项。正则表达式 `\d+` 表示匹配一个或多个数字。
除了 `FindString()` 方法,`regexp` 包还提供了其他的方法来进行更复杂的正则表达式操作,比如 `FindAllString()`、`ReplaceAllString()` 等等。你可以根据具体需求选择合适的方法来处理字符串。希望这能对你有所帮助!如果你还有其他问题,请随时提问。
golang正则匹配b=开头\n结尾
在 Golang 中,可以使用 `regexp` 包来进行正则表达式匹配。以下是匹配以 `b=` 开头,以 `\n` 结尾的正则表达式示例代码:
```go
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(`^b=.*\n$`)
str := "b=hello world\n"
if re.MatchString(str) {
fmt.Println("Matched!")
} else {
fmt.Println("Not matched!")
}
}
```
在上面的代码中,我们使用 `regexp.MustCompile()` 函数创建了一个正则表达式对象,然后使用 `MatchString()` 方法对指定的字符串进行匹配。如果匹配成功,输出 `Matched!`;否则输出 `Not matched!`。
阅读全文