정규식을 사용하여 URL 주소가 7단계 도메인 이름인지 확인하는 것은 golang에서 매우 일반적인 작업입니다. 이 글에서는 golang에서 정규식을 사용하여 URL 주소가 7단계 도메인 이름인지 확인하는 방법을 소개합니다.
우선 7급 도메인 이름이 무엇인지 이해해야 합니다. 인터넷에서 도메인 이름은 IP 주소 집합과 해당 관계를 식별하는 문자열입니다. 그 중 최상위 도메인 이름은 .com, .cn 등과 같은 최상위 도메인 이름입니다. 최상위 도메인 이름 아래에는 baidu.com, google.cn 등과 같은 두 번째 수준 도메인 이름이 있습니다. 마찬가지로 7급 도메인 이름은 최상위 도메인 이름 아래의 7급 도메인 이름(예: blog.baidu.com,maps.google.cn 등)을 의미합니다.
다음으로 golang에서 정규식을 사용하여 URL 주소가 7단계 도메인 이름인지 확인하겠습니다.
먼저 URL 주소를 프로토콜, 호스트 이름, 경로 등과 같은 여러 부분으로 분해해야 합니다. 이는 golang의 net/url 라이브러리를 통해 달성할 수 있습니다. 구체적인 코드는 다음과 같습니다.
import ( "fmt" "net/url" ) func main() { rawurl := "https://blog.baid.com/path/to/resource" parsedUrl, err := url.Parse(rawurl) if err != nil { fmt.Printf("Parsing URL failed: %s ", err.Error()) return } fmt.Println(parsedUrl.Scheme) // 输出 "https" fmt.Println(parsedUrl.Hostname()) // 输出 "blog.baid.com" fmt.Println(parsedUrl.Path) // 输出 "/path/to/resource" }
호스트 이름을 분해한 후 호스트 이름에 대해 정규식 검증을 수행해야 합니다. 이를 달성하기 위해 golang의 정규식 라이브러리 regexp를 사용할 수 있습니다. 구체적인 코드는 다음과 같습니다.
import ( "fmt" "regexp" ) func main() { hostname := "blog.baid.com" // 从上一步获取 sevenLevelDomain := `^([a-zA-Z0-9][-a-zA-Z0-9]{0,61}[a-zA-Z0-9].)+([a-zA-Z]{2,})$` matched, err := regexp.MatchString(sevenLevelDomain, hostname) if err != nil { fmt.Printf("Regex validation failed: %s ", err.Error()) return } if matched { fmt.Println("This is a valid seven-level domain.") } else { fmt.Println("This is NOT a valid seven-level domain.") } }
이 코드에서는 7단계 도메인 이름의 형식을 일치시키는 데 사용되는 정규식 문자열 SevenLevelDomain을 정의합니다. 이 정규 표현식의 의미는 문자 또는 숫자로 시작하여 문자, 숫자 및 "-"로 구성된 1~61 길이의 문자열, "."로 구분된 문자 또는 숫자로 끝나고 마지막으로 도메인 이름을 의미합니다. 문자로 끝납니다. 이 정규식은 "blog.baid.com" 및 "news.sports.cnn.com"과 같은 7단계 도메인 이름과 일치할 수 있습니다.
마지막으로 위의 두 단계를 결합하면 됩니다. 구체적인 코드는 다음과 같습니다.
import ( "fmt" "net/url" "regexp" ) func main() { rawurl := "https://blog.baid.com/path/to/resource" parsedUrl, err := url.Parse(rawurl) if err != nil { fmt.Printf("Parsing URL failed: %s ", err.Error()) return } sevenLevelDomain := `^([a-zA-Z0-9][-a-zA-Z0-9]{0,61}[a-zA-Z0-9].)+([a-zA-Z]{2,})$` matched, err := regexp.MatchString(sevenLevelDomain, parsedUrl.Hostname()) if err != nil { fmt.Printf("Regex validation failed: %s ", err.Error()) return } if matched { fmt.Printf("%s is a valid seven-level domain. ", parsedUrl.Hostname()) } else { fmt.Printf("%s is NOT a valid seven-level domain. ", parsedUrl.Hostname()) } }
지금까지 우리는 golang의 정규식과 net/url 라이브러리를 사용하여 URL 주소가 7단계 도메인 이름인지 확인하는 데 성공했습니다. 위의 코드를 공부함으로써 독자들은 정규 표현식의 사용과 golang의 URL 주소 처리에 대해 더 깊은 이해를 갖게 될 것이라고 믿습니다.
위 내용은 golang에서 정규식을 사용하여 URL 주소가 7단계 도메인 이름인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!