您当前的位置:首页 > 互联网教程

怎样用正则表达式匹配IP地址与域名

发布时间:2025-05-23 09:19:47    发布人:远客网络

怎样用正则表达式匹配IP地址与域名

一、怎样用正则表达式匹配IP地址与域名

我们知道,一个完整的域名,由根域、顶级域、二级、三级??域名构成,并且每级域名之间用点分开,而且每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,长度不超过63。

单独的名字可以由正则表达式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}来匹配,而完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点(在规范中,最后有一个点的才是完整域名,但一般认为包括两个以上名字的域名也是完整域名,哪怕它后面没有点)。

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?一个IP字串,由四段组成,每一段是0~255的数字,段与段之间用小数点隔开,比如61.139.2.69就是一个合法的IP字串。

如果正则表达式写成\d{1,3}(\.\d{1,3}){3}无疑是不负责的,因为它可以匹配300.400.555.666这样的非法IP字串。

要匹配一个0~255之间的数,有几种匹配方式,下面是其中一种:

100~199 1\d\d百位为1的三位数

200~249 2[0-4]\d三位数,百位是2,十位是0~9

250~255 25[0-5]三位数,百位是2,十位是5,个位是0~5

写成正则表达式,即:(\d|([1-9]\d)|(1\d\d)|(2[0-4]\d)|(25[0-5])),但是这样的正则表达式在匹配254这样的字串时,会分别匹配2、5、4,得到3个匹配,达不到预期效果,正确做法是将次序颠倒为((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d),因为在(xxx|yyy)这种匹配行为中,是从左向右搜索的。

((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)){3}按:

象061这样的高位为0的数是不能被匹配的。

因此,最上面(1.部分)的写法才是正确完整版的,(2.部分)的写法较为片面

相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

怎样用正则表达式让JavaScript的代码高亮

怎样用正则匹配电话号手机号和邮箱网址

二、正则表达式匹配邮箱

1、在Java编程中,通过java.util.regex包中的Pattern和Matcher工具类来精准匹配电子邮件地址。一个典型的示例如下:

2、首先,定义一个电子邮件地址,比如example@gmail.com,然后准备一个正则表达式模式。这个模式可以匹配大多数标准格式的邮箱地址,如:^([\w-]+(\.[\w-]+)*)@[\w-]+(\.[\w-]+)+$。这里的模式包括了用户名部分(由字母、数字和连字符组成),点和顶级域名(如gmail.com)。

3、接下来,使用Pattern的compile方法将正则表达式转化为Pattern对象,然后使用Matcher的matcher方法将这个模式与邮箱地址进行匹配。最后,通过Matcher的matches方法来确认邮箱地址是否完全符合这个模式。

4、特别注意,Java中的正则表达式语法有一些特殊规则,比如反斜杠字符(\)在字符串中需要写成\\,以避免被解释为转义字符。同样,\w在正则表达式中需要写成\\w,以匹配任何字母、数字或下划线。

三、邮箱正则校验

1、为了验证电子邮件地址的合法性,可以使用正则表达式。这些表达式旨在匹配符合特定标准的电子邮件格式。

2、第一个正则表达式专门用于单个电子邮件地址的验证。

3、/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/

4、- ^ [a-zA-Z0-9_.-]开头为字母、数字、下划线、点或短横线。

5、-@ [a-zA-Z0-9-]后跟字母、数字或短横线。

6、-(\\.[a-zA-Z0-9-]+)*之后可能包含零或多个点后跟字母、数字或短横线。

7、-\. [a-zA-Z0-9]{2,6}结尾为点后跟2至6个字母或数字。

8、第二个正则表达式用于验证多个电子邮件地址,地址间用逗号分隔。

9、/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})([,]([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))*$/

10、-([a-z0-9_\.-]+)第一个地址部分。

11、-@([\da-z\.-]+)@符号后的域名部分。

12、-\.([a-z\.]{2,6})域名的顶级部分。

13、多个地址通过逗号连接,每个地址遵循上述格式。

14、通过应用这些正则表达式,可以有效地校验电子邮件地址的合规性,确保它们符合标准的电子邮件格式。