>백엔드 개발 >Golang >golang에서 정규식을 사용하여 입력이 유효한 ISO 3166-1 Alpha-2 국가 코드인지 확인하는 방법

golang에서 정규식을 사용하여 입력이 유효한 ISO 3166-1 Alpha-2 국가 코드인지 확인하는 방법

WBOY
WBOY원래의
2023-06-25 10:09:071043검색

golang에서는 정규식을 사용하여 ISO 3166-1 Alpha-2 국가 코드의 유효성 확인을 포함하여 입력 값의 형식을 쉽게 확인할 수 있습니다.

ISO 3166-1 Alpha-2 국가 코드는 ISO 3166 국제 표준에 정의된 표준 인코딩으로 각 국가/지역의 고유 코드를 나타내기 위해 두 글자를 사용합니다. 예를 들어 중국의 코드는 "CN"입니다. 미국의 경우 "US"입니다. 입력이 유효한 ISO 3166-1 Alpha-2 국가 코드인지 확인하려면 다음을 포함한 특정 규칙이 필요합니다.

  1. 두 개의 대문자로 구성되어야 합니다.
  2. 문자는 라틴 문자여야 합니다.
  3. 중복된 코드가 없습니다.
  4. golang에서는 ISO 3166-1 Alpha-2 국가 코드를 정규 표현식의 도움으로 확인할 수 있습니다. 간단한 정규식은 다음과 같습니다.
^[A-Z]{2}$

이 정규식의 의미는 다음과 같습니다.

^로 시작하고 $로 끝나므로 전체 입력 값이 이 조건을 충족해야 합니다.
  1. [A-Z]{ 2}는 2개로 구성되어야 함을 의미합니다. 대문자(A-Z)로 구성되어야 함을 의미합니다. 중괄호 안의 2는 길이가 2자여야 함을 나타냅니다.
  2. 다음으로 golang의 regexp 패키지에서 제공하는 함수를 사용하여 입력 값이 정규식을 준수하는지 확인할 수 있습니다. 샘플 코드는 다음과 같습니다.
package main

import (
    "fmt"
    "regexp"
)

func main() {
    input := "CN"

    // 编译正则表达式
    regex := regexp.MustCompile("^[A-Z]{2}$")

    // 验证输入值是否符合正则表达式
    if !regex.MatchString(input) {
        fmt.Printf("%s不是一个有效的ISO 3166-1 Alpha-2国家/地区代码
", input)
    } else {
        fmt.Printf("%s是一个有效的ISO 3166-1 Alpha-2国家/地区代码
", input)
    }
}

이 코드에서는 먼저 입력 값 입력을 정의합니다. , 정규식 ^[A-Z]{2}$를 정규식으로 컴파일합니다. 다음으로 regex.MatchString(input) 함수를 사용하여 입력 값이 정규식과 일치하는지 확인합니다. 일치하지 않으면 오류 메시지가 출력되고, 일치하면 성공 메시지가 출력됩니다.

확인을 위해 정규식을 사용할 때는 다음과 같은 몇 가지 특수한 경우에도 주의해야 합니다. regex.MatchString(input)函数来验证输入值是否符合正则表达式。如果不符合,输出一条错误信息;如果符合,输出一条成功信息。

在使用正则表达式进行验证时,还需要注意一些特殊情况,例如:

  1. 忽略大小写:如果需要忽略大小写,可以使用(?i)在正则表达式开头进行设置,示例代码如下:
regex := regexp.MustCompile("(?i)^[a-z]{2}$")

这里的(?i)

    대소문자 무시: 대소문자를 무시해야 하는 경우 (?i)를 사용할 수 있습니다. 처음에 설정된 정규식에서 샘플 코드는 다음과 같습니다.
  1. package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        input := "CN"
        codes := []string{"CN", "US", "JP"} // 已有的ISO 3166-1 Alpha-2国家/地区代码
    
        // 判断输入值是否已存在
        for _, code := range codes {
            if input == code {
                fmt.Printf("%s是一个重复的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
                return
            }
        }
    
        // 编译正则表达式
        regex := regexp.MustCompile("^[A-Z]{2}$")
    
        // 验证输入值是否符合正则表达式
        if !regex.MatchString(input) {
            fmt.Printf("%s不是一个有效的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
        } else {
            fmt.Printf("%s是一个有效的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
        }
    }
(?i) 여기서는 대소문자 무시를 의미합니다.

🎜중복 코드 방지: ISO 3166-1 Alpha-2 국가 코드는 중복 코드를 허용하지 않습니다. 코드 중복을 피하기 위해 기존 코드를 배열이나 맵에 저장할 수 있습니다. 정규식 확인을 사용할 때마다 먼저 입력 값이 배열에 있는지 아니면 맵에 있는지 확인합니다. 유효한 ISO 3166 -1 Alpha-2 국가 코드가 아닙니다. 샘플 코드는 다음과 같습니다. 🎜🎜rrreee🎜이 샘플 코드에서는 먼저 기존 ISO 3166-1 Alpha-2 국가 코드 코드 배열을 정의하고 루프를 사용하여 배열의 각 요소를 반복합니다. 입력 값이 배열에 이미 있으면 유효한 ISO 3166-1 Alpha-2 국가 코드가 아니라는 의미입니다. 입력 값이 배열에 없으면 계속해서 정규식을 사용하여 유효성을 검사하세요. 🎜

위 내용은 golang에서 정규식을 사용하여 입력이 유효한 ISO 3166-1 Alpha-2 국가 코드인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.