Heim  >  Artikel  >  Backend-Entwicklung  >  Go-Sprache-Kenntnisse für reguläre Ausdrücke: Wie man den Betreiber einer Mobiltelefonnummer zuordnet

Go-Sprache-Kenntnisse für reguläre Ausdrücke: Wie man den Betreiber einer Mobiltelefonnummer zuordnet

WBOY
WBOYOriginal
2023-07-12 20:19:551023Durchsuche

Go-Sprachkenntnisse für reguläre Ausdrücke: So passen Sie den Betreiber einer Mobiltelefonnummer an

Einführung:
Regulärer Ausdruck ist ein leistungsstarkes Tool zum Abgleichen von Zeichenfolgen, mit dem Sie Zeichenfolgen finden können, die einem bestimmten Muster im Text entsprechen. In der Go-Sprache bietet das Paket regexp in der Standardbibliothek Unterstützung für reguläre Ausdrücke. In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke verwenden, um den Betreiber einer Mobiltelefonnummer abzugleichen, und den Lesern dabei helfen, reguläre Ausdrücke besser zur Verarbeitung von Mobiltelefonnummern zu verwenden. regexp包提供了正则表达式的支持。本文将介绍如何使用正则表达式来匹配手机号码的运营商,帮助读者更好地利用正则表达式进行手机号码的处理。

  1. 初始化正则表达式
    首先,我们需要初始化正则表达式并编译成一个对象。在Go语言中,我们可以使用regexp.MustCompile函数来进行编译并返回一个*regexp.Regexp实例。以下是一个示例代码:
import "regexp"

func main() {
    // 手机号码运营商正则表达式
    regex := regexp.MustCompile(`^1(3[4-9]|4[7]|5[0-27-9]|7[678]|8[2-478])d{8}$`)
    
    // 进行手机号码运营商匹配
    phoneNumber := "13456789012"
    if regex.MatchString(phoneNumber) {
        println("匹配成功")
    } else {
        println("匹配失败")
    }
}

在上面的代码中,正则表达式^1(3[4-9]|4[7]|5[0-27-9]|7[678]|8[2-478])d{8}$用于匹配中国大陆手机号码。该正则表达式可以匹配以1开头,后面跟着3、4、5、7或8,然后是8个数字的手机号码。如果匹配成功,则输出"匹配成功",否则输出"匹配失败"。

  1. 使用子表达式提取匹配结果
    在上面的示例代码中,我们只判断了手机号码是否匹配,但没有提取运营商信息。下面,我们将使用子表达式来提取匹配结果。
import (
    "fmt"
    "regexp"
)

func main() {
    // 手机号码运营商正则表达式
    regex := regexp.MustCompile(`^1((3[4-9])|(4[7])|(5[0-27-9])|(7[678])|(8[2-478]))d{8}$`)
    
    // 进行手机号码运营商匹配
    phoneNumber := "13456789012"
    if regex.MatchString(phoneNumber) {
        // 提取运营商信息
        result := regex.FindStringSubmatch(phoneNumber)
        if len(result) > 1 {
            fmt.Printf("运营商:%s
", getCarrier(result[1]))
        }
    } else {
        println("匹配失败")
    }
}

// 根据运营商编码获取运营商名称
func getCarrier(code string) string {
    switch code {
    case "34", "35", "36", "37", "38", "39":
        return "中国移动"
    case "47":
        return "中国移动(物联网号码)"
    case "50", "51", "52", "57", "58":
        return "中国联通"
    case "70", "71", "72":
        return "中国联通(物联网号码)"
    case "82", "83", "84", "85", "86", "87", "88", "89", "80":
        return "中国电信"
    case "74":
        return "中国电信(物联网号码)"
    }
    return "未知运营商"
}

上面的代码中,我们通过使用子表达式(3[4-9])|(4[7])|(5[0-27-9])|(7[678])|(8[2-478])来匹配运营商代码,并使用regex.FindStringSubmatch函数提取运营商代码作为参数调用getCarrier

    Initialisieren Sie den regulären Ausdruck
      Zuerst müssen wir den regulären Ausdruck initialisieren und ihn in ein Objekt kompilieren. In der Go-Sprache können wir die Funktion regexp.MustCompile verwenden, um eine *regexp.Regexp-Instanz zu kompilieren und zurückzugeben. Hier ist ein Beispielcode:

    1. rrreee
    2. Im obigen Code ist der reguläre Ausdruck ^1(3[4-9]|4[7]|5[0-27-9]|7[678] | 8[2-478])d{8}$ wird verwendet, um Mobiltelefonnummern auf dem chinesischen Festland abzugleichen. Dieser reguläre Ausdruck kann Mobiltelefonnummern zuordnen, die mit 1 beginnen, gefolgt von 3, 4, 5, 7 oder 8 und dann 8 Ziffern. Bei erfolgreichem Match wird „Match Success“ ausgegeben, andernfalls „Match Failed“.

      Verwenden Sie Unterausdrücke, um übereinstimmende Ergebnisse zu extrahieren

      Im obigen Beispielcode haben wir nur beurteilt, ob die Mobiltelefonnummer übereinstimmt, aber nicht die Betreiberinformationen extrahiert. Im Folgenden verwenden wir Unterausdrücke, um passende Ergebnisse zu extrahieren. 🎜🎜rrreee🎜Im obigen Code verwenden wir den Unterausdruck (3[4-9])|(4[7])|(5[0-27-9])|(7[678] )| (8[2-478]), um den Netzbetreibercode abzugleichen, und verwenden Sie die Funktion regex.FindStringSubmatch, um den Netzbetreibercode als Parameter zum Aufrufen von getCarrierzu extrahieren > Funktion: Holen Sie sich den Namen des Spediteurs und drucken Sie ihn aus. 🎜🎜🎜Fazit🎜In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke in der Go-Sprache verwenden, um den Betreiber einer Mobiltelefonnummer abzugleichen. Durch reguläre Ausdrücke können wir schnell die Gültigkeit der Mobiltelefonnummer überprüfen und Betreiberinformationen extrahieren. In praktischen Anwendungen können wir reguläre Ausdrücke kombinieren, um Vorgänge wie das Filtern und Klassifizieren von Mobiltelefonnummern auszuführen und so die Entwicklungseffizienz zu verbessern. 🎜🎜🎜Das Obige ist der Inhalt dieses Artikels. Ich hoffe, er wird den Lesern hilfreich sein. 🎜

Das obige ist der detaillierte Inhalt vonGo-Sprache-Kenntnisse für reguläre Ausdrücke: Wie man den Betreiber einer Mobiltelefonnummer zuordnet. 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