700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 正则表达式的使用——匹配手机号码 IP地址实例讲解

正则表达式的使用——匹配手机号码 IP地址实例讲解

时间:2023-01-18 23:31:02

相关推荐

正则表达式的使用——匹配手机号码 IP地址实例讲解

一、使用场景

典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。

通过使用正则表达式,可以:

测试字符串内的模式。

例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本。

可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。基于模式匹配从字符串中提取子字符串。

可以查找文档内或输入域内特定的文本。

例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。

二、语法

① 非打印字符

② 特殊字符

注:如需要匹配这些特殊字符,需进行”转义”,即在字符前面加个反斜杠字符’ \’。

③ 限定符

④ 定位符

注:定位符不能与限定符一起使用。

正则表达式的菜鸟教程:正则表达式 – 教程 | 菜鸟教程

正则表达式在线测试工具:正则表达式在线测试 | 菜鸟工具

三、实例

① 匹配手机号码

最新手机号码段查询地址:最新数据统计【qqzeng-ip】4月

现有手机号码段

移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 195 198

联通号段:130 131 132 145 146 155 156 166 167 171 175 176 185 186 196

电信号段:133 149 153 173 174 177 180 181 189 190 191 193 199

虚拟运营商号段:162 165 167 170 171

整理上面的手机号码段分析可得:

13开头的第三位数字包含0-9,匹配"13[0-9]"

14开头的第三位数字包含5-9,匹配"14[5-9]"

15开头的第三位数字不包含4的其他9个数字,匹配"15[0-35-9]"

16开头的第三位数字包含5-9,匹配"16[25-7]"

17开头的第三位数字包含0-8,匹配"17[0-8]"

18开头的第三位数字包含0-9,匹配"18[0-9]"

19开头的第三位数字包含8、9,匹配"19[0135689]"

其他数字就简单了,只有八位数字,包含0-9,匹配" [0-9]{8}$"或"\d{8}$"

因此,手机号码的正则表达式匹配字符串如下所示:

匹配手机号码段正则表达式:

"^(13[0-9]|14[5-9]|15[0-35-9]|16[25-7]|17[0-8]|18[0-9]|19[0135689])[0-9]{8}$""^(13[0-9]|14[5-9]|15[0-35-9]|16[25-7]|17[0-8]|18[0-9]|19[0135689])\d{8}$"

② 匹配IP地址

IP地址的格式:[0,255].[0,255].[0,255].[0,255]

这里四段的数字都是0-255之间,这个区间可分为五种情况,如下:

一位数时,可为0到9,即[0,9],匹配”\d”或”[0-9]”;

两位数时,十位数为1到9,个位数为0到9,即[10,99],匹配”[1-9]\d”;

三位数且百位数为1时,十位数与个位数可为0到9,即[100,199],匹配”1\d\d”;

三位数且百位数为2时,十位数为0到4,个位数为0-9,即[200,249],匹配”2[0-4]\d”;

三位数且百位数为2时,十位数为5,个位数为0-5,即[250,255],匹配”25[0-5]”;

因此,IP地址的正则表达式匹配字符串如下所示:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。