当前位置: 首页 > news >正文

正则表达式在网页处理中的应用四则

正则表达式在网页处理中的应用四则

正则表达式(Regular Expression)为字符串模式匹配提供了一种高效、方便的方法。几乎所有高级语言都提供了对正则表达式的支持,或者提供了现成的代码库供调用。本文以ASP环境中常见的处理任务为例,介绍正则表达式的应用技巧。

一、检验密码和邮件地址的格式

我们的第一个实例示范正则表达式的一项基本功能:抽象地描述任意复杂的字符串。它的意思就是,正则表达式给予程序员一种形式化的字符串描述方法,只需很少的代码即可描述出应用遇到的任意字符串模式。例如,对于不从事技术工作的人来说,密码格式的要求可以描述如下:密码的第一个字符必须是字母,密码最少4 个字符且不超过15个字符,密码不能包含除字母、数字和下划线以外的字符。

作为程序员,我们必须把上面对密码格式的自然语言描述转换成其他形式,使得ASP页面能够理解并应用它来防止非法的密码输入。描述这个密码格式的正则表达式是:^[a-zA-Z]\w{3,14}$。

在ASP应用里,我们可以把密码验证过程写成可重用的函数,如下所示:
Function TestPassword(strPassword)
Dim re
Set re = new RegExp

re.IgnoreCase = false
re.global = false
re.Pattern = "^[a-zA-Z]\w{3,14}$"

TestPassword = re.Test(strPassword)
End Function
 
下面我们把这个检验密码格式的正则表达式和自然语言描述对比着看看:

密码的第一个字符必须是字母:正则表达式描述是“^[a-zA-Z]”,其中“^”表示字符串的开始,连字符告诉RegExp匹配指定范围的所有字符。

密码最少4个字符且不超过15个字符:正则表达式描述是“{3,14}”。

密码不能包含除字母、数字和下划线以外的字符:正则表达式描述是“\w”。

几点说明:{3,14}表示前面的模式匹配至少3个、但不超过14个的字符(加上第一个字符就成了4到15个字符)。注意花括号内的语法要求极其严格,不允许在逗号的两边加入空格。如果加入了空格,它将对正则表达式的含义产生影响,导致密码格式检验时产生错误。另外,上面的正则表达式末尾也没有加上 “$”字符。$字符使得正则表达式匹配字符串直至末尾,确保合法的密码后面没有加上任何其他字符。

类似于密码格式检验,检查email地址的合法性也是一个很常见的问题,用正则表达式进行简单的email地址检验可以实现如下:
<%
Dim re
Set re = new RegExp

re.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
Response.Write re.Test("aabb@yahoo.com")
%>
 


二、提取HTML页面的特定部分

从HTML页面提取内容所面临的主要问题是,我们必须寻找一种方法精确地识别出自己想要的那一部分内容。例如,下面是一个显示新闻标题的HTML代码片断:

http://www.lryc.cn/news/135124.html

相关文章:

  • ping使用方法
  • “心理健康人工智能产学研创新联盟”揭牌成立|深兰科技
  • FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」
  • Mybatis-动态sql和分页
  • 基于YOLOV8模型的西红柿目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 数学建模及数据分析 || 4. 深度学习应用案例分享
  • 数据分析15——office中的Excel基础技术汇总
  • C语言好题解析(四)
  • 英语——主谓一致
  • 属性字符串解析
  • 【C++初阶】vector容器
  • ThreadLocal深度解析
  • 06有监督学习——迁移学习
  • 快速连接服务器脚本 可从多个服务中选择并连接
  • MemSeg:一种差异和共性来检测图像表面缺陷的半监督方法
  • 迈向未来的大门:人脸识别技术的突破与应用
  • Vue-9.集成(.editorconfig、.eslintrc.js、.prettierrc)
  • Qt 编译使用Bit7z库接口调用7z.dll、7-Zip.dll解压压缩常用Zip、ISO9660、Wim、Esd、7z等格式文件(一)
  • AndroidUI体系
  • CBV (基于类的视图)源码解析(1)
  • 2023-08-17 Untiy进阶 C#知识补充7——C#8主要功能与语法
  • 登陆接口的的Filter过滤
  • 【Python原创设计】基于Python Flask的全国气象数据采集及可视化系统-附下载方式以及项目参考论文,原创项目其他均为抄袭
  • 【力扣】42. 接雨水 <模拟、双指针、单调栈>
  • 【leetcode 力扣刷题】链表基础知识 基础操作
  • 关于openfeign调用时content-type的问题
  • OpenCV 玩转图像和视频
  • 技术分享 | 如何编写同时兼容 Vue2 和 Vue3 的代码?
  • 基于ArcGis提取道路中心线
  • xcode14.3更新一系列问题