Fungsi FindStringSubmatch mencari subrentetan pertama dipadankan dengan ungkapan biasa: fungsi ini mengembalikan hirisan yang mengandungi subrentetan yang sepadan, dengan elemen pertama ialah keseluruhan rentetan dipadankan dan elemen berikutnya ialah subrentetan individu. Contoh kod: regexp.FindStringSubmatch(teks, corak) mengembalikan sekeping subrentetan yang sepadan. Kes praktikal: Ia boleh digunakan untuk memadankan nama domain dalam alamat e-mel, contohnya: e-mel := "user@example.com", corak := @([^s]+)$ untuk mendapatkan padanan nama domain[ 1].
Apabila berurusan dengan padanan ungkapan biasa dalam bahasa Go, kita boleh menggunakan fungsi FindStringSubmatch
untuk mencari subrentetan padanan pertama. Fungsi ini mengembalikan kepingan yang mengandungi subrentetan yang sepadan. Elemen pertama ialah keseluruhan rentetan yang dipadankan, manakala elemen berikutnya ialah subrentetan individu pada perlawanan itu. FindStringSubmatch
函数来找出匹配的第一个子字符串。该函数返回一个包含匹配子字符串的切片。第一个元素是整个匹配字符串,而随后的元素是匹配的各个子字符串。
代码示例:
package main import ( "fmt" "regexp" ) func main() { // 定义要匹配的文本和正则表达式模式 text := "This is a sample text to match." pattern := `is` // 使用 FindStringSubmatch 找出匹配的第一个子字符串 match := regexp.FindStringSubmatch(text, pattern) // 输出匹配的子字符串 if len(match) > 0 { fmt.Println("匹配的子字符串:", match[0]) } else { fmt.Println("未找到匹配") } }
实战案例:
使用 FindStringSubmatch
package main import ( "fmt" "regexp" ) func main() { // 定义要匹配的电子邮件地址 email := "user@example.com" // 定义用于匹配域名的正则表达式模式 pattern := `@([^\s]+)$` // 使用 FindStringSubmatch 找出匹配的第一个子字符串(域名) match := regexp.FindStringSubmatch(email, pattern) // 输出匹配的域名 if len(match) > 0 { fmt.Println("域名:", match[1]) } else { fmt.Println("未找到匹配") } }
FindStringSubmatch
untuk memadankan nama domain dalam alamat e-mel: 🎜域名: example.com
Atas ialah kandungan terperinci Bagaimana untuk mencari subrentetan pertama dipadankan dengan ungkapan biasa Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!