欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用正則表達(dá)式驗(yàn)證域名的教程

 更新時(shí)間:2024年11月19日 10:57:58   作者:宋發(fā)元  
本教程介紹了如何使用正則表達(dá)式驗(yàn)證域名格式,正則表達(dá)式確保域名符合基本規(guī)則:每個(gè)標(biāo)簽只能包含字母、數(shù)字和短橫線,標(biāo)簽長度限制在1到63個(gè)字符之間,且頂級域名必須由字母組成且長度至少為2個(gè)字符,感興趣的朋友一起看看吧

下面是一篇關(guān)于如何使用正則表達(dá)式驗(yàn)證域名的教程。

如何使用正則表達(dá)式驗(yàn)證域名

簡介

域名是互聯(lián)網(wǎng)上網(wǎng)站的地址,每個(gè)域名由多個(gè)標(biāo)簽(label)組成,標(biāo)簽之間用點(diǎn) . 分隔。域名規(guī)則有很多細(xì)節(jié),但基本要求是:

  • 每個(gè)標(biāo)簽只能包含字母、數(shù)字和短橫線 -
  • 標(biāo)簽的長度不能超過 63 個(gè)字符。
  • 域名的最后一部分(即頂級域名,TLD)必須由字母組成,且至少為 2 個(gè)字符。

在本文中,我們將學(xué)習(xí)如何使用正則表達(dá)式來驗(yàn)證域名是否合法。

正則表達(dá)式分析

我們可以使用以下正則表達(dá)式來驗(yàn)證域名格式是否正確:

^(?:[a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,}$

解釋

  • ^$
    • ^:表示匹配字符串的開始。
    • $:表示匹配字符串的結(jié)束。通過這兩個(gè)符號,我們可以確保整個(gè)字符串符合正則表達(dá)式的規(guī)則。
  • (?: ... )
    • 這是一個(gè)非捕獲組,用于將一組元素組合在一起,但是不會把它們單獨(dú)捕獲用于后續(xù)的處理。這里的非捕獲組用于重復(fù)匹配標(biāo)簽部分。
  • [a-zA-Z0-9-]{1,63}
    • [a-zA-Z0-9-]:表示標(biāo)簽部分可以包含小寫字母、大寫字母、數(shù)字和短橫線 -。
    • {1,63}:表示每個(gè)標(biāo)簽的長度應(yīng)在 1 到 63 個(gè)字符之間。
  • \.
    • \. 用于匹配點(diǎn) .。由于點(diǎn)在正則表達(dá)式中有特殊意義(表示任何單個(gè)字符),所以我們使用反斜杠對它進(jìn)行轉(zhuǎn)義。
  • +
    • + 表示前面的模式(即標(biāo)簽部分和點(diǎn))可以重復(fù)多次,表示域名可以有多個(gè)標(biāo)簽部分。
  • [a-zA-Z]{2,}
    • [a-zA-Z]:表示頂級域名(TLD)部分只可以包含字母。
    • {2,}:表示頂級域名的長度必須至少為 2 個(gè)字符。 合法的域名示例

以下是一些合法的域名,正則表達(dá)式應(yīng)當(dāng)能夠匹配:

  • example.com
  • www.example.com
  • subdomain.example.co
  • my-website.example.org

不合法的域名示例

以下是一些不合法的域名,正則表達(dá)式會排除:

  • example..com —— 雙點(diǎn) .. 不合法
  • -example.com —— 域名標(biāo)簽不能以短橫線 - 開頭
  • example-.com —— 域名標(biāo)簽不能以短橫線 - 結(jié)尾
  • .example.com —— 域名不能以點(diǎn) . 開頭
  • example —— 沒有頂級域名部分(缺少點(diǎn))
  • example.c —— 頂級域名長度小于 2 個(gè)字符
  • example.123 —— 頂級域名不能包含數(shù)字

使用 Java 正則表達(dá)式進(jìn)行域名驗(yàn)證

在 Java 中,我們可以使用 Pattern 類和 Matcher 類來編寫一個(gè)方法來驗(yàn)證域名。以下是 Java 實(shí)現(xiàn):

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DomainValidator {
    // 域名驗(yàn)證正則表達(dá)式
    private static final String DOMAIN_REGEX = "^(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,}$";
    // 驗(yàn)證域名是否合法
    public static boolean isValidDomain(String domain) {
        // 創(chuàng)建模式對象
        Pattern pattern = Pattern.compile(DOMAIN_REGEX);
        // 創(chuàng)建匹配器對象
        Matcher matcher = pattern.matcher(domain);
        // 返回是否匹配
        return matcher.matches();
    }
    // 測試方法
    public static void main(String[] args) {
        // 測試合法域名
        System.out.println(isValidDomain("example.com"));  // true
        System.out.println(isValidDomain("www.example.com"));  // true
        System.out.println(isValidDomain("subdomain.example.co"));  // true
        System.out.println(isValidDomain("my-website.example.org"));  // true
        // 測試不合法域名
        System.out.println(isValidDomain("example..com"));  // false
        System.out.println(isValidDomain("-example.com"));  // false
        System.out.println(isValidDomain("example-.com"));  // false
        System.out.println(isValidDomain(".example.com"));  // false
        System.out.println(isValidDomain("example"));  // false
        System.out.println(isValidDomain("example.c"));  // false
        System.out.println(isValidDomain("example.123"));  // false
    }
}

解釋:

  • 正則表達(dá)式:我們將正則表達(dá)式 DOMAIN_REGEX 定義為常量,以便在 Java 代碼中使用。
  • isValidDomain 方法:該方法接收一個(gè)字符串參數(shù) domain,并使用 Pattern.compile() 方法編譯正則表達(dá)式,再使用 matcher.matches() 來驗(yàn)證輸入的字符串是否符合域名格式。
  • main 方法:測試了多個(gè)合法和不合法的域名,以驗(yàn)證 isValidDomain() 方法的正確性。

總結(jié)

通過本教程,你已經(jīng)學(xué)會了如何使用正則表達(dá)式來驗(yàn)證域名格式。我們編寫了一個(gè)正則表達(dá)式,確保域名符合基本的規(guī)則:每個(gè)標(biāo)簽只能包含字母、數(shù)字和短橫線,標(biāo)簽長度限制在 1 到 63 個(gè)字符之間,且頂級域名必須由字母組成且長度至少為 2 個(gè)字符。

我們還使用 Java 的 PatternMatcher 類實(shí)現(xiàn)了一個(gè)域名驗(yàn)證方法,并對合法和不合法的域名進(jìn)行了測試。

希望這篇教程對你有所幫助!

指定后綴域名驗(yàn)證

以下是從阿里云域名購買處獲得的一些域名后綴:

.ac.cn
.ah.cn
.archi
.art
.asia
.auto
.autos
.baby
.band
.beauty
.beer
.bio
.biz
.bj.cn
.black
.blue
.bond
.cab
.cafe
.car
.cars
.cash
.cc
.center
.chat
.city
.click
.cloud
.club
.cn
.co
.college
.com
.com.cn
.company
.cool
.cq.cn
.cyou
.design
.email
.fan
.fans
.fashion
.fit
.fj.cn
.fun
.fund
.fyi
.games
.gd.cn
.global
.gold
.gov.cn
.green
.group
.gs.cn
.guru
.gx.cn
.gz.cn
.ha.cn
.hair
.hb.cn
.he.cn
.hi.cn
.hk.cn
.hl.cn
.hn.cn
.homes
.host
.icu
.info
.ink
.jl.cn
.js.cn
.jx.cn
.kim
.law
.life
.live
.ln.cn
.lotto
.love
.ltd
.luxe
.makeup
.market
.mba
.me
.media
.mo.cn
.mobi
.monster
.motorcycles
.net
.net.cn
.news
.nm.cn
.nx.cn
.online
.org.cn
.organic
.pink
.plus
.poker
.press
.pro
.promo
.protection
.pub
.pw
.qh.cn
.quest
.red
.ren
.rent
.run
.sc.cn
.school
.sd.cn
.security
.sh.cn
.shop
.shopping
.show
.site
.ski
.skin
.sn.cn
.social
.space
.storage
.store
.studio
.sx.cn
.tax
.team
.tech
.technology
.theatre
.tickets
.tj.cn
.today
.top
.tv
.tw.cn
.uno
.video
.vin
.vip
.vote
.voto
.wang
.website
.wiki
.work
.world
.xin
.xj.cn
.xyz
.xz.cn
.yachts
.yn.cn
.yoga
.zj.cn
.zone
.餐廳
.佛山
.公司
.廣東
.集團(tuán)
.企業(yè)
.商標(biāo)
.商城
.商店
.網(wǎng)店
.網(wǎng)絡(luò)
.網(wǎng)址
.我愛你
.游戲
.娛樂
.在線
.招聘
.中國
.中文網(wǎng).ac.cn
.ah.cn
.archi
.art
.asia
.auto
.autos
.baby
.band
.beauty
.beer
.bio
.biz
.bj.cn
.black
.blue
.bond
.cab
.cafe
.car
.cars
.cash
.cc
.center
.chat
.city
.click
.cloud
.club
.cn
.co
.college
.com
.com.cn
.company
.cool
.cq.cn
.cyou
.design
.email
.fan
.fans
.fashion
.fit
.fj.cn
.fun
.fund
.fyi
.games
.gd.cn
.global
.gold
.gov.cn
.green
.group
.gs.cn
.guru
.gx.cn
.gz.cn
.ha.cn
.hair
.hb.cn
.he.cn
.hi.cn
.hk.cn
.hl.cn
.hn.cn
.homes
.host
.icu
.info
.ink
.jl.cn
.js.cn
.jx.cn
.kim
.law
.life
.live
.ln.cn
.lotto
.love
.ltd
.luxe
.makeup
.market
.mba
.me
.media
.mo.cn
.mobi
.monster
.motorcycles
.net
.net.cn
.news
.nm.cn
.nx.cn
.online
.org.cn
.organic
.pink
.plus
.poker
.press
.pro
.promo
.protection
.pub
.pw
.qh.cn
.quest
.red
.ren
.rent
.run
.sc.cn
.school
.sd.cn
.security
.sh.cn
.shop
.shopping
.show
.site
.ski
.skin
.sn.cn
.social
.space
.storage
.store
.studio
.sx.cn
.tax
.team
.tech
.technology
.theatre
.tickets
.tj.cn
.today
.top
.tv
.tw.cn
.uno
.video
.vin
.vip
.vote
.voto
.wang
.website
.wiki
.work
.world
.xin
.xj.cn
.xyz
.xz.cn
.yachts
.yn.cn
.yoga
.zj.cn
.zone
.餐廳
.佛山
.公司
.廣東
.集團(tuán)
.企業(yè)
.商標(biāo)
.商城
.商店
.網(wǎng)店
.網(wǎng)絡(luò)
.網(wǎng)址
.我愛你
.游戲
.娛樂
.在線
.招聘
.中國
.中文網(wǎng)

要求在一段文本中,用正則表達(dá)式匹配出包含我給的后綴域名的數(shù)據(jù),正則表達(dá)式如下:

(?:[a-zA-Z0-9-]+\.)+(?:ac\.cn|ah\.cn|archi|art|asia|auto|autos|baby|band|beauty|beer|bio|biz|bj\.cn|black|blue|bond|cab|cafe|car|cars|cash|cc|center|chat|city|click|cloud|club|cn|co|college|com|com\.cn|company|cool|cq\.cn|cyou|design|email|fan|fans|fashion|fit|fj\.cn|fun|fund|fyi|games|gd\.cn|global|gold|gov\.cn|green|group|gs\.cn|guru|gx\.cn|gz\.cn|ha\.cn|hair|hb\.cn|he\.cn|hi\.cn|hk\.cn|hl\.cn|hn\.cn|homes|host|icu|info|ink|jl\.cn|js\.cn|jx\.cn|kim|law|life|live|ln\.cn|lotto|love|ltd|luxe|makeup|market|mba|me|media|mo\.cn|mobi|monster|motorcycles|net|net\.cn|news|nm\.cn|nx\.cn|online|org\.cn|organic|pink|plus|poker|press|pro|promo|protection|pub|pw|qh\.cn|quest|red|ren|rent|run|sc\.cn|school|sd\.cn|security|sh\.cn|shop|shopping|show|site|ski|skin|sn\.cn|social|space|storage|store|studio|sx\.cn|tax|team|tech|technology|theatre|tickets|tj\.cn|today|top|tv|tw\.cn|uno|video|vin|vip|vote|voto|wang|website|wiki|work|world|xin|xj\.cn|xyz|xz\.cn|yachts|yn\.cn|yoga|zj\.cn|zone|餐廳|佛山|公司|廣東|集團(tuán)|企業(yè)|商標(biāo)|商城|商店|網(wǎng)店|網(wǎng)絡(luò)|網(wǎng)址|我愛你|游戲|娛樂|在線|招聘|中國|中文網(wǎng))

測試數(shù)據(jù)如下:

www.example.com
www.test.ac.cn
example.企業(yè)
mywebsite.中國
www.example.ac.cn
test.ah.cn
mywebsite.archi
site.com
invalidwebsite.xyz
example.bj.cn
example.com.cn
random.website
/zuankeba/3894433.html

效果如下:

到此這篇關(guān)于如何使用正則表達(dá)式驗(yàn)證域名的文章就介紹到這了,更多相關(guān)正則表達(dá)式驗(yàn)證域名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論