Java用正则表达式判断学号,利用正则表达式验证学号_利用正则表达式开发动态网页...

[摘 要]在动态网页设计中,利用正则表达式可以高效、快速地进行开发,本文探讨了在PHP中利用正则表达式进行url地址解析,密码和邮件验证以及文本文件的处理。   [关键词]正则表达式 PHP 动态网页

[中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)02-0052-02

1 正则表达式

正则表达式由美国数学家Stephen Kleene于1956年提出,主要用途是用来描述正则集代数。正则表达式提供了一种从字符集中搜寻特定字符串的机制,它让用户使用一系列的指定字符构建匹配模式,并将匹配模式与相应的数据文件、程序输入等目标对象进行比较,再根据比较的结果执行对应的程序。

正则表达式功能强大,具体而言,它有四大功能:查询、提取、分割、替换。这四大功能在动态网页开发中都得到了很好的应用。本文以PHP编程中的文本数据处理为例子,讨论正则表达式在动态网页中的应用。

2 PHP中的正则表达式

正则表达式是通过在一对分隔符之间放入表达式模式的各种组件来构造一个表达式,即/expression/。表达式由普通字符(例如字符a-z)和特殊字符(元字符)组成。普通字符指的是未显式指定为元字符的打印和非打印字符,包括所有的大小写字母、数字、标点符号等等。而特殊字符,即元字符,指的是一些具有特殊含义的字符,具体而言,主要有以下一些。

$符号。匹配输入字符串的结尾,例如abc$与“ddd abc”匹配,如果要匹配$字符本身,则要用\$,其它的元字符类似。

*符号。匹配前面的子表达式零次或多次,如ab*与“ab”,“abb”,“abbbbb”等都匹配。

+符号。匹配前面的子表达式一次或多次,如ab+与“abb”,“abbb”,“abbbbb”等匹配,但与“ab”不匹配。

(和)符号。用来标记一个子表达式的开始和结束位置,这个子表达式可以供以后使用。

.符号。匹配除换行符\n之外的任何单字符。如(.)+可以匹配除换行符外的所有字符串。

?符号。匹配0或1个前面的字符,如ab?c?可以而且只能匹配“abc”、“abbc”、“abcc”、“abbcc”。

|符号。匹配两项之间的一个,如a|b。匹配“a”或“b”,abc|xyz可匹配“abc”或“xyz”。

{n}。n必须是一个非负整数,匹配n次,例如,a{2}不能匹配“ba”,但能匹配“baa”。

{n,}。n必须是一个非负整数,它指的是匹配至少n次,例如,a{2,}不能匹配“ba”,但能匹配“baaaaaa”中的所有的a。

{n,m}。n和m必须都是非负整数,其中n   刘七,145,男,’喜欢篮球,足球’

将其它各记录的最后一个字段也加上单引号,以便于统一的处理。

由此可以得出分析某行文本的正则表达式为:

/,(?=([^’]*’[^’]*’)*(?![^’]*’))/

这个正则表达式首先找一个引号,然后继续查找,检查逗号后面的引号数量是不是偶数,或者为0。即如果逗号后面的单引号数量是偶数,则这个逗号位于字符串外面。

下面根据前面的正则表达式可以写出一个函数,接受一个字符串参数,根据这个字符串参数中的逗号分隔符,单引号限定符分割字符串,返回结果为数组。

function SplitStr($strRecord){

$pattern=”,(?=([^’]*’[^’]*’)*(?![^’]*’))”;

$result=preg_split($pattern,$strRecord);

return $result;

}

除了处理结构化文本外,正则表达式在动态网页开发中,还经常用于对查找某此字符串,并对这些字符串作突出显示等。

例如,对某一段文本中的所有“PHP”单词进行突出显示,相关函数可以是:

function replaceStr($text){

$pattern=”\s+PHP\b”;

$aim=”$0”;

$newText=preg_replace($pattern, $aim,$text);

return $newText;

}

这里的正则表达式是在PHP作为一个单独的单词出现时,将它突出显示,函数返回的就是对应的文本。在动态网页设计中,利用这种搜索与替换功能,能够方便地为网站搜索程序加上突出显示关键词的功能,将这个例子进一步完善,也可以自动为网页中的某些关键词加入指向其它网页的超级链接或直接成为某一个搜索引擎的关键词。

4 结语

用正则表达式处理文本文件具有快速、自动的优点,能够节约大量的时间,在动态网页设计中灵活运用这一功能可以大大提高工作的效率。所以掌握正则表达式的运用是动态网页设计的重要能力。

[参考文献]

[1] 杜冬梅,许彩欣,苏健.浅谈正则表达式在web系统中的应用[J].计算机系统应用,2007,(8):87-90.

[2] 祈鸣鸣.浅析asp技术在动态网页技术中的应用[J].计算机与信息技术,2007,(18):67.

[3] 李昱,陈和平.正则表达式在数据库查询中的应用[J].计算机工程与设计,2006,(6):2303-2305.

[4] 张长富,黄中敏.javascript动态网页编程实例手册[M].海洋出版社,2005.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值