it编程 > 编程语言 > 正则表达式

使用正则表达式验证域名的教程

129人参与 2024-11-20 正则表达式

下面是一篇关于如何使用正则表达式验证域名的教程。

如何使用正则表达式验证域名

简介

域名是互联网上网站的地址,每个域名由多个标签(label)组成,标签之间用点 . 分隔。域名规则有很多细节,但基本要求是:

在本文中,我们将学习如何使用正则表达式来验证域名是否合法。

正则表达式分析

我们可以使用以下正则表达式来验证域名格式是否正确:

^(?:[a-za-z0-9-]{1,63}\.)+[a-za-z]{2,}$

解释

以下是一些合法的域名,正则表达式应当能够匹配:

不合法的域名示例

以下是一些不合法的域名,正则表达式会排除:

使用 java 正则表达式进行域名验证

在 java 中,我们可以使用 pattern 类和 matcher 类来编写一个方法来验证域名。以下是 java 实现:

import java.util.regex.matcher;
import java.util.regex.pattern;
public class domainvalidator {
    // 域名验证正则表达式
    private static final string domain_regex = "^(?:[a-za-z0-9-]{1,63}\\.)+[a-za-z]{2,}$";
    // 验证域名是否合法
    public static boolean isvaliddomain(string domain) {
        // 创建模式对象
        pattern pattern = pattern.compile(domain_regex);
        // 创建匹配器对象
        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
    }
}

解释:

总结

通过本教程,你已经学会了如何使用正则表达式来验证域名格式。我们编写了一个正则表达式,确保域名符合基本的规则:每个标签只能包含字母、数字和短横线,标签长度限制在 1 到 63 个字符之间,且顶级域名必须由字母组成且长度至少为 2 个字符。

我们还使用 java 的 patternmatcher 类实现了一个域名验证方法,并对合法和不合法的域名进行了测试。

希望这篇教程对你有所帮助!

指定后缀域名验证

以下是从阿里云域名购买处获得的一些域名后缀:

.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
.餐厅
.佛山
.公司
.广东
.集团
.企业
.商标
.商城
.商店
.网店
.网络
.网址
.我爱你
.游戏
.娱乐
.在线
.招聘
.中国
.中文网.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
.餐厅
.佛山
.公司
.广东
.集团
.企业
.商标
.商城
.商店
.网店
.网络
.网址
.我爱你
.游戏
.娱乐
.在线
.招聘
.中国
.中文网

要求在一段文本中,用正则表达式匹配出包含我给的后缀域名的数据,正则表达式如下:

(?:[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|餐厅|佛山|公司|广东|集团|企业|商标|商城|商店|网店|网络|网址|我爱你|游戏|娱乐|在线|招聘|中国|中文网)

测试数据如下:

www.example.com
www.test.ac.cn
example.企业
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

效果如下:

到此这篇关于如何使用正则表达式验证域名的文章就介绍到这了,更多相关正则表达式验证域名内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

使用正则表达式匹配合法的 IPv4 地址的操作方法

11-20

正则表达式匹配 URL 的方法

11-20

@Pattern 用于校验字符串是否符合特定正则表达式的注解

11-29

SQL正则表达式错误 “parentheses not balanced“ 问题的排查和解决方案

12-04

深入理解正则表达式中的 test 和 /[^A-Za-z0-9]/ ️(推荐)

12-11

正则表达式高级应用与性能优化记录

01-01

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论