Go 언어 정규식 연습: ID 카드 번호 일치 방법
소개:
일상적인 개발에서는 ID 카드 번호를 확인하고 일치해야 하는 경우가 많습니다. 정규식은 이러한 요구를 처리하는 강력한 도구를 제공합니다. 이 기사에서는 Go 언어에서 정규식을 사용하여 ID 카드 번호를 일치시키는 방법을 소개합니다.
1. ID 번호 형식
ID 번호는 17자리 숫자와 체크 코드(마지막 숫자는 숫자 또는 문자 X일 수 있음)를 포함하여 18자의 문자열입니다. ID 번호의 형식은 다음과 같습니다.
2.
Go 언어는 내장된 정규식 라이브러리 regexp를 제공합니다. 이를 사용하여 정규식 일치 작업을 처리할 수 있습니다.
다음은 정규식을 사용하여 ID 카드 번호를 일치시키는 샘플 코드입니다.
package main import ( "fmt" "regexp" ) func main() { // 身份证号码的正则表达式 idCardPattern := `^d{17}[d|X|x]$` idCardRegexp := regexp.MustCompile(idCardPattern) // 待匹配的身份证号码 idCards := []string{ "11010519880307541X", "310104198812173687", "53012419900107417X", "44010519951231061X", "3101041988121736878", // 非法身份证号码 } // 遍历身份证号码并进行匹配 for _, idCard := range idCards { if idCardRegexp.MatchString(idCard) { fmt.Printf("身份证号码 %s 是合法的 ", idCard) } else { fmt.Printf("身份证号码 %s 是非法的 ", idCard) } } }
위 코드를 실행하면 다음과 같이 출력됩니다.
身份证号码 11010519880307541X 是合法的 身份证号码 310104198812173687 是合法的 身份证号码 53012419900107417X 是合法的 身份证号码 44010519951231061X 是合法的 身份证号码 3101041988121736878 是非法的
위 코드에서는 ID 번호의 정규식 문자열이 먼저 정의됩니다.idCardPattern
, 여기서^d{17}[d|X|x]$
는 17개의 숫자로 시작하는 문자열을 나타내고 마지막 숫자는 숫자 또는 문자 X입니다.idCardPattern
,其中^d{17}[d|X|x]$
表示以17个数字开头,最后一位是数字或字母X的字符串。
然后使用regexp.MustCompile()
函数将正则表达式字符串编译为一个正则表达式对象idCardRegexp
。
接下来,定义了一个待匹配的身份证号码切片idCards
,包含了几个合法和非法的身份证号码。
最后使用for
循环遍历idCards
,通过idCardRegexp.MatchString()
regexp.MustCompile()
함수를 사용하여 정규식 문자열을 정규식 개체
idCardRegexp
로 컴파일합니다.
다음으로
idCards
와 일치할 ID 카드 번호 조각이 정의되며, 여기에는 여러 개의 합법적인 ID 번호와 불법적인 ID 번호가 포함되어 있습니다.
마지막으로for
를 사용하여idCards
를 반복하고idCardRegexp.MatchString()
메서드를 통해 각 ID 번호를 일치시킵니다. 일치에 성공하면 "xx 신분증 번호는 유효합니다."가 출력되고, 일치하지 않으면 "xx 신분증 번호는 불법입니다."가 출력됩니다.
위 내용은 Go 언어 정규식 연습: 신분증 번호 일치 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!