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

news/2024/11/17 6:47:16/

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

正则表达式(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.ppmy.cn/news/1050016.html

相关文章

Reids之Set类型解读

目录 基本介绍 命令概述 SADD key member1 [member2] SCARD key SINTER key1 [key2] SMEMBERS key SPOP key SUNION key1 [key2] 基本介绍 新的存储需求&#xff1a;存储大量的数据 在查询方面提供更高的效率需要的存储结构&#xff1a;能够保存大量的数据&#x…

外贸网站怎么做推广优化

外贸网站的推广和优化是关键&#xff0c;因为它可以帮助您扩展国际市场并吸引更多的客户。以下是e6zz seo多年经验总结出一些有效的方法&#xff0c;可以帮助您推广和优化外贸网站&#xff1a; 优化网站内容&#xff1a; 确保您的网站内容对国际客户有吸引力&#xff0c;包括产…

Qt使用qml(QtLocation)显示地图

一、qt版本和QtLocation模块版本确认 如果qt版本过低的话是没有QtLocation模块的&#xff0c;我的版本如下 构建工具版本如下 二、qml代码编写 1、工程中添加模块 首先在工程中添加模块quickwidgets positioning location 2、添加资源文件 3、在资源文件中添加qml文件 …

【QT】重写QAbstractLIstModel,使用ListView来显示多列数据

qt提供了几个视图来进行信息的列表显示&#xff0c;QListView可以用来显示继承QStractListModel的字符串列表中的字符串&#xff0c;默认的模型里面只包含一列的内容&#xff1a; 这里以qml为例子&#xff0c;先新建一个qml的项目&#xff0c;示例代码如下&#xff1a; 先创建一…

MySQL——基础——自连接

一、自连接 自连接查询语法&#xff1a; SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...; 自连接查询,可以是内连接查询,也可以是外连接查询 二、自连接演示 1.查询员工 及其 所属领导的名字(将一张表看作是两张同样的表,一张是员工信息表,另一张是老板信息表。员…

[管理与领导-38]:IT基层管理者 - 人的管理 - 左膀右臂下属要离职,怎么办?是放手还是留?

目录 一、考虑因素 二、放手的原因 1.1 胸襟 1.2 与团队不匹配 三、如何避免核心员工离职造成对团队的重大影响 四、如何降低成员离职的影响 五、如何团队过渡依赖个人 六、能力强的员工会离职&#xff0c;为什么还要培养员工 一、考虑因素 当左膀右臂下属要离职时&am…

python中(限小白,大佬勿入)python开发中的trick:常量

开场白 我是小白&#xff0c;今天被前端骂了一顿&#xff1a;我们交接不是说好了就给你四个变量&#xff1a;A&#xff0c;B。C。D。你这命名的这么具体&#xff0c;我这边给你传值不是很方便啊&#xff08;因为不同模块有复用的图片路径&#xff09;&#xff0c;我说“那我改&…

Linux--贪吃蛇项目

C语言获取键盘输入的函数&#xff1a;getchar&#xff1b;scanf&#xff1b;gets。需要回车才能响应 贪吃蛇项目&#xff1a; 1、ncurse&#xff1a; 可取代ncurse的&#xff1a;C图形库GTK&#xff1b;C图形库QT。基本落伍 使用ncurse是因为按键响应及时&#xff0c;不需要回车…