Rumah >pembangunan bahagian belakang >Golang >Cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah URL yang sah

Cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah URL yang sah

WBOY
WBOYasal
2023-07-12 15:12:071866semak imbas

Cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah URL yang sah

Dalam pembangunan program harian kami, kami selalunya perlu menentukan sama ada rentetan ialah URL yang sah. Bahasa Go menyediakan sokongan untuk ungkapan biasa dan kami boleh menggunakan ungkapan biasa untuk menentukan kesahihan URL. Di bawah ini kami akan memperkenalkan cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah URL yang sah dan melampirkan contoh kod.

Pertama, kita perlu mengimport pustaka ungkapan biasa bahasa Go regexp. Kodnya adalah seperti berikut: regexp。代码如下:

import (
    "regexp"
)

接下来,我们需要定义一个用于表示URL的正则表达式。URL的正则表达式可以有多种形式,这里我们采用一个简单的正则表达式来判断URL的合法性。代码如下:

var urlRegex = regexp.MustCompile(`^(http|https)://[a-zA-Z0-9-.]+.[a-zA-Z0-9]{2,}(:[0-9]{2,5})?(/[a-zA-Z0-9#]+/?)*(?.+)?$`)

上述正则表达式的含义是:

  • ^(http|https): 以http或https开头;
  • ://: 匹配://字符;
  • [a-zA-Z0-9-.]+: 匹配一个或多个字母、数字、连字符和点的组合,表示域名;
  • .[a-zA-Z0-9]{2,}: 匹配一个或多个字母和数字的组合,表示顶级域名;
  • (:[0-9]{2,5})?: 匹配一个或多个数字的组合,表示端口号。该部分可以省略;
  • (/[a-zA-Z0-9#]+/?)*: 匹配一个或多个字母、数字和#字符的组合,表示路径。路径部分可以省略;
  • (?.+)?: 匹配以?开头的字符,表示查询参数。该部分可以省略;
  • $: 表示字符串的结尾。

接下来,我们可以编写一个函数来判断给定的字符串是否为合法URL。代码如下:

func isURLValid(url string) bool {
    return urlRegex.MatchString(url)
}

上述函数使用了正则表达式的MatchString方法来进行匹配判断。如果给定的字符串符合正则表达式的规则,则返回true,否则返回false

package main

import (
    "fmt"
    "regexp"
)

var urlRegex = regexp.MustCompile(`^(http|https)://[a-zA-Z0-9-.]+.[a-zA-Z0-9]{2,}(:[0-9]{2,5})?(/[a-zA-Z0-9#]+/?)*(?.+)?$`)

func isURLValid(url string) bool {
    return urlRegex.MatchString(url)
}

func main() {
    url := "https://www.example.com"
    fmt.Printf("The URL '%s' is valid: %v
", url, isURLValid(url))

    url = "invalid_url"
    fmt.Printf("The URL '%s' is valid: %v
", url, isURLValid(url))
}

Seterusnya, kita perlu mentakrifkan ungkapan biasa untuk mewakili URL. Ungkapan biasa untuk URL boleh mengambil pelbagai bentuk Di sini kami menggunakan ungkapan biasa yang mudah untuk menentukan kesahihan URL. Kodnya adalah seperti berikut:

The URL 'https://www.example.com' is valid: true
The URL 'invalid_url' is valid: false

Maksud ungkapan biasa di atas ialah:

  • ^(http|https): bermula dengan http atau https;
  • ://: sepadan dengan aksara ://
  • [a-zA-Z0-9-.]+: sepadan dengan satu atau lebih banyak huruf dan nombor , gabungan tanda sempang dan titik, yang menunjukkan nama domain
  • .[a-zA-Z0-9]{2,}: Memadankan satu atau lebih; gabungan huruf dan nombor , menunjukkan nama domain peringkat atas
  • (:[0-9]{2,5})?: Memadankan gabungan satu atau lebih; nombor, menunjukkan nombor port. Bahagian ini boleh ditinggalkan
  • (/[a-zA-Z0-9#]+/?)*: Memadankan satu atau lebih gabungan huruf, nombor dan # aksara , menunjukkan laluan. Bahagian laluan boleh diabaikan;
  • (?.+)?: sepadan dengan aksara bermula dengan ?, menunjukkan parameter pertanyaan. Bahagian ini boleh diabaikan;
  • $: menunjukkan penghujung rentetan.
Seterusnya, kita boleh menulis fungsi untuk menentukan sama ada rentetan yang diberikan ialah URL yang sah. Kodnya adalah seperti berikut:

rrreee

Fungsi di atas menggunakan kaedah MatchString bagi ungkapan biasa untuk melakukan pertimbangan yang sepadan. Jika rentetan yang diberikan mematuhi peraturan ungkapan biasa, kembalikan true, sebaliknya kembalikan false. 🎜🎜Berikut ialah contoh program yang menunjukkan cara menggunakan fungsi di atas untuk menentukan sama ada rentetan ialah URL yang sah. Kodnya adalah seperti berikut: 🎜rrreee🎜Jalankan program contoh di atas dan keputusan berikut akan dikeluarkan: 🎜rrreee🎜Melalui contoh di atas, kita boleh melihat cara menggunakan ungkapan biasa untuk menentukan sama ada rentetan ialah URL yang sah. Dalam pembangunan sebenar, kita boleh melaraskan peraturan ungkapan biasa untuk membuat pertimbangan mengikut keperluan kita sendiri. Sudah tentu, kita juga boleh menggunakan kaedah lain untuk menentukan sama ada rentetan ialah URL yang sah dan ungkapan biasa hanyalah salah satu daripadanya. 🎜

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam bahasa Go untuk menentukan sama ada rentetan ialah URL yang sah. 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