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

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

编程之家2023-10-1985次浏览

今天给各位分享正则表达式匹配域名的知识,其中也会对怎样用正则表达式匹配IP地址与域名进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

正则表达式匹配域名?怎样用正则表达式匹配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之间的数,有几种匹配方式,下面是其中一种:

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

匹配正则表达式说明

0~9 \d单个数字

10~99 [1-9]\d两位数

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

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

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

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

写成正则表达式,即:(\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的代码高亮

正则表达式表单验证的实例介绍

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

oracle 如何使用正则表达式匹配出一级域名

匹配完整域名的正则表达式:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}表达的意思如下:

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

(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?表达的意思如下:

完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点(在规范中,最后有一个点的才是完整域名,但一般认为包括两个以上名字的域名也是完整域名,哪怕后面没有点)。

正则表达式 过滤网址

正则表达式,过滤出所有超链接除了一个url,例如:

<a href='http://www.abc.com/'> abc.com</a><br/><a href='http://www.edf.com/'> edf.com</a>

过滤:变为abc.com<br/><a href='http://www.edf.com/'> edf.com</a>没人知道怎么做么,要保留edf.com的超级链接,过滤掉其他的所有网址的超级链接。

FunctionautoLink(str)

Setra=NewRegExp

ra.IgnoreCase=True

ra.Global=True

ra.Pattern="<a[^>]+>(.+?)<\/a>"

autoLink=ra.replace(str,"$1")

ENDFunction

扩展资料:

注意事项:

正则表达式,也称为正则表达式。这是计算机科学中的一个概念。

正则表达式通常用于检索和替换符合模式(规则)的文本,许多编程语言都支持使用正则表达式进行字符串操作。

例如Perl中内置了一个强大的正则表达式引擎。正则表达式的概念最初是由诸如(sed和GREp)这样的Unix工具推广的。

正则表达式通常缩写为“regex”。单数形式是regexp、regex,复数形式是regexps、regexes和regexen。

如何用正则表达式提取url中的网址和文件

可以使用正则表达式来提取url中的网址和文件,具体实现可以参考以下示例代码:

const url="https://www.example.com/path/to/file.txt";

//提取网址

const regexUrl=/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;

const matchesUrl= url.match(regexUrl);

const website= matchesUrl[2]+"."+ matchesUrl[3];

//提取文件

const regexFile=/\/([^/]+\.\w{3,4})$/;

const matchesFile= url.match(regexFile);

const file= matchesFile[1];

console.log("Website:", website);//输出: Website: example.com

console.log("File:", file);//输出: File: file.txt

在上述代码中,使用了正则表达式来匹配url中的网址和文件,其中:

regexUrl是匹配网址的正则表达式,使用了一些常见的url格式和符号,具体解释如下:

^:匹配字符串开始位置

(https?:\/\/)?:匹配http或https开头的url

([\da-z.-]+):匹配域名部分

\.([a-z.]{2,6}):匹配顶级域名

([\/\w.-]*)*\/?:匹配路径部分

$:匹配字符串结束位置

matchesUrl是将url和regexUrl进行匹配得到的结果数组,其中第二个元素即为域名部分,第三个元素即为顶级域名部分。

regexFile是匹配文件名的正则表达式,使用了斜杠和文件名后缀来匹配文件名。

matchesFile是将url和regexFile进行匹配得到的结果数组,其中第一个元素即为文件名部分。

最后,可以使用console.log输出提取到的网址和文件名。

OK,本文到此结束,希望对大家有所帮助。

免费ddns域名?免费动态域名解析自带域名路由器稳定吗地质数据库?基础地质空间数据库