Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran ungkapan biasa bahasa Go: Cara memadankan pengendali nombor telefon mudah alih

Kemahiran ungkapan biasa bahasa Go: Cara memadankan pengendali nombor telefon mudah alih

WBOY
WBOYasal
2023-07-12 20:19:551034semak imbas

Kemahiran ungkapan biasa bahasa Go: Cara memadankan pengendali nombor telefon mudah alih

Pengenalan:
Ekspresi biasa ialah alat pemadanan rentetan yang berkuasa yang boleh digunakan untuk mencari rentetan yang sepadan dengan corak tertentu dalam teks. Dalam bahasa Go, pakej regexp dalam pustaka standard menyediakan sokongan untuk ungkapan biasa. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk memadankan pengendali nombor telefon mudah alih, membantu pembaca menggunakan ungkapan biasa untuk memproses nombor telefon mudah alih dengan lebih baik. 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

    Memulakan ungkapan biasa
      Pertama, kita perlu memulakan ungkapan biasa dan menyusunnya menjadi objek. Dalam bahasa Go, kita boleh menggunakan fungsi regexp.MustCompile untuk menyusun dan mengembalikan contoh *regexp.Regexp. Berikut ialah contoh kod:

    1. rrreee
    2. Dalam kod di atas, ungkapan biasa ^1(3[4-9]|4[7]|5[0-27-9]|7[678] | 8[2-478])d{8}$ digunakan untuk memadankan nombor telefon mudah alih tanah besar China. Ungkapan biasa ini boleh memadankan nombor telefon mudah alih yang bermula dengan 1, diikuti dengan 3, 4, 5, 7 atau 8, dan kemudian 8 digit. Jika perlawanan berjaya, "Kejayaan Perlawanan" akan dikeluarkan, jika tidak, "Perlawanan Gagal" ialah output.

      Gunakan subungkapan untuk mengekstrak hasil yang sepadan

      Dalam kod sampel di atas, kami hanya menilai sama ada nombor telefon mudah alih sepadan, tetapi tidak mengeluarkan maklumat pengendali. Di bawah, kami akan menggunakan subungkapan untuk mengekstrak padanan. 🎜🎜rrreee🎜Dalam kod di atas, kami menggunakan subungkapan (3[4-9])|(4[7])|(5[0-27-9])|(7[678] )| (8[2-478]) untuk memadankan kod pembawa dan gunakan fungsi regex.FindStringSubmatch untuk mengekstrak kod pembawa sebagai parameter untuk memanggil getCarrier fungsi, Dapatkan nama pembawa dan cetaknya. 🎜🎜🎜Kesimpulan🎜Artikel ini memperkenalkan cara menggunakan ungkapan biasa dalam bahasa Go untuk memadankan pengendali nombor telefon mudah alih. Melalui ungkapan biasa, kami boleh dengan cepat mengesahkan kesahihan nombor telefon mudah alih dan mengekstrak maklumat pengendali. Dalam aplikasi praktikal, kami boleh menggabungkan ungkapan biasa untuk melaksanakan operasi seperti menapis dan mengklasifikasikan nombor telefon mudah alih untuk meningkatkan kecekapan pembangunan. 🎜🎜🎜Di atas adalah kandungan artikel ini, semoga bermanfaat kepada para pembaca. 🎜

Atas ialah kandungan terperinci Kemahiran ungkapan biasa bahasa Go: Cara memadankan pengendali nombor telefon mudah alih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn