Heim >Backend-Entwicklung >Golang >So verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob die Eingabe ein gültiger ISO 3166-1 Alpha-2-Ländercode ist

So verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob die Eingabe ein gültiger ISO 3166-1 Alpha-2-Ländercode ist

WBOY
WBOYOriginal
2023-06-25 10:09:071049Durchsuche

In Golang können reguläre Ausdrücke verwendet werden, um das Format von Eingabewerten einfach zu überprüfen, einschließlich der Überprüfung der Gültigkeit von ISO 3166-1 Alpha-2-Ländercodes.

Der Ländercode ISO 3166-1 Alpha-2 ist eine im internationalen Standard ISO 3166 definierte Standardkodierung. Er verwendet zwei Buchstaben, um den eindeutigen Code jedes Landes/jeder Region darzustellen. Der Code für China ist beispielsweise „CN“. für die Vereinigten Staaten ist „US“. Um zu überprüfen, ob es sich bei der Eingabe um einen gültigen ISO 3166-1 Alpha-2-Ländercode handelt, müssen folgende Regeln beachtet werden:

    muss aus zwei Großbuchstaben bestehen;
  1. muss zwischen Groß- und Kleinschreibung unterscheiden; Kein doppelter Code.
  2. In Golang können ISO 3166-1 Alpha-2-Ländercodes mithilfe regulärer Ausdrücke überprüft werden. Ein einfacher regulärer Ausdruck lautet wie folgt:
  3. ^[A-Z]{2}$
  4. Die Bedeutung dieses regulären Ausdrucks ist wie folgt:

beginnt mit ^ und endet mit $, was bedeutet, dass der gesamte Eingabewert diese Bedingung erfüllen muss;

[A-Z]{ 2} bedeutet, dass es aus zwei Zeichen bestehen muss. Es besteht aus Großbuchstaben (A-Z). Die 2 in geschweiften Klammern gibt an, dass die Länge 2 Zeichen betragen muss.

  1. Als nächstes können wir überprüfen, ob der Eingabewert dem regulären Ausdruck entspricht, indem wir die vom Regexp-Paket in Golang bereitgestellte Funktion verwenden. Der Beispielcode lautet wie folgt:
  2. 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)
        }
    }
  3. In diesem Code definieren wir zunächst eine Eingabewerteingabe , und kompilieren Sie den regulären Ausdruck ^[A-Z]{2}$ in einen regulären Ausdruck. Als nächstes verwenden wir die Funktion regex.MatchString(input), um zu überprüfen, ob der Eingabewert mit dem regulären Ausdruck übereinstimmt. Bei Nichtübereinstimmung wird eine Fehlermeldung ausgegeben, bei Übereinstimmung wird eine Erfolgsmeldung ausgegeben.
Wenn Sie reguläre Ausdrücke zur Überprüfung verwenden, müssen Sie auch auf einige Sonderfälle achten, wie zum Beispiel:

Groß-/Kleinschreibung ignorieren: Wenn Sie die Groß-/Kleinschreibung ignorieren müssen, können Sie (?i) verwenden im regulären Ausdruck Setzen Sie es am Anfang. Der Beispielcode lautet wie folgt: regex.MatchString(input)函数来验证输入值是否符合正则表达式。如果不符合,输出一条错误信息;如果符合,输出一条成功信息。

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

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

这里的(?i)

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) bedeutet hier, die Groß- und Kleinschreibung zu ignorieren.
Doppelte Codes vermeiden: ISO 3166-1 Alpha-2-Ländercodes erlauben keine doppelten Codes. Um das Duplizieren von Code zu vermeiden, können wir den vorhandenen Code in einem Array oder einer Karte speichern. Bei jeder Überprüfung mit regulären Ausdrücken ermitteln wir zunächst, ob der Eingabewert im Array oder in der Karte vorhanden ist Kein gültiger ISO 3166-1 Alpha-2-Ländercode. Der Beispielcode lautet wie folgt:

rrreee🎜In diesem Beispielcode definieren wir zunächst ein Array vorhandener ISO 3166-1 Alpha-2-Ländercodes und verwenden eine Schleife, um jedes Element im Array zu durchlaufen. Wenn der Eingabewert bereits im Array vorhanden ist, bedeutet dies, dass es sich nicht um einen gültigen ISO 3166-1 Alpha-2-Ländercode handelt. Wenn der Eingabewert nicht im Array vorhanden ist, verwenden Sie weiterhin reguläre Ausdrücke zur Validierung. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke in Golang, um zu überprüfen, ob die Eingabe ein gültiger ISO 3166-1 Alpha-2-Ländercode ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn