Go 言語の正規表現スキル: 携帯電話番号の演算子を照合する方法
はじめに:
正規表現は、テキスト内で一致するものを見つけるために使用できる強力な文字列照合ツールです。あるAパターン文字列。 Go 言語では、標準ライブラリの regexp
パッケージが正規表現のサポートを提供します。この記事では、正規表現を使用して携帯電話番号の演算子を照合する方法を紹介し、読者が正規表現をより適切に使用して携帯電話番号を処理できるようにします。
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 桁の携帯電話番号と一致します。照合が成功した場合は「Match Success」が出力され、そうでない場合は「Match Failed」が出力されます。
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 を呼び出します。
関数。オペレーター名を取得して出力します。
以上がこの記事の内容です。読者の皆様のお役に立てれば幸いです。
以上がGo 言語の正規表現スキル: 携帯電話番号の演算子を照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。