Dalam Go, anda boleh menggunakan ungkapan biasa untuk memadankan cap masa: susun rentetan ungkapan biasa, seperti ungkapan yang digunakan untuk memadankan cap masa ISO 8601: ^d{4}-d{2}-d{2}Td{ 2}: d{2}:d{2}(.d+)?(Z|[+-][0-9]{2}:[0-9]{2})$. Gunakan fungsi regexp.MatchString untuk menyemak sama ada rentetan sepadan dengan ungkapan biasa.
Ekspresi biasa (regex) ialah alat yang berkuasa untuk mencari dan memadankan corak tertentu dalam rentetan. Dalam Go, ungkapan biasa boleh diproses menggunakan pakej regexp
. Pakej ini menyediakan fungsi MustCompile
yang menyusun rentetan ungkapan biasa dan mengembalikan objek Regexp
. regexp
包处理正则表达式。此包提供了一个 MustCompile
函数,可以编译正则表达式字符串并返回一个 Regexp
对象。
实战案例:匹配 ISO 8601 时间戳
考虑以下正则表达式,用于匹配 ISO 8601 时间戳:
`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$`
此正则表达式捕获以下格式的时间戳:
d{4}
)d{2}
)d{2}
)d{2}
)d{2}
)d{2}
)(.d+)?
)([+-][0-9]{2}:[0-9]{2})
Pertimbangkan ungkapan biasa berikut untuk memadankan cap masa ISO 8601:
package main import ( "fmt" "regexp" ) func main() { timestamp := "2023-02-15T12:34:56Z" re := regexp.MustCompile(`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$`) if re.MatchString(timestamp) { fmt.Println("匹配成功") } else { fmt.Println("匹配失败") } }
Ungkapan biasa ini menangkap cap masa dalam format berikut:
(d{2}
) d {2}) 🎜<li>Aksara "T" (pembatas) 🎜</li>
<li>Dua digit jam (<kod>d{2}</kod>
</li>
) 🎜d{2}
) 🎜(.d+) ?
)🎜"Z" mewakili UTC atau offset (Atas ialah kandungan terperinci Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!