使用Perl常规表达式进行匹配
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-10 09:29:44 浏览: 评论:0
长期以来,Perl以其对常规表达式的固有支持,一直是非常流行的文本处理工具。在这篇入门性文章中,我们将带领你简单了解如何在你自己的程序中使用常规表达式,实现更加强大的文本搜索和替代功能。
我们首先了解最简单的常规表达式:匹配。假如在字符串中找到相匹配的模式,匹配操作就返回真值。因此下面的表达式:
$string =~ m/text/
只有在变量“$string”中的字符串包含子字符串“text”时才返回真值。这是最基本的常规表达式,它对每个字符进行逐字匹配。当然,这只是对常规表达式作用的一个尝试。以需要查找以“ext”结尾的四个字母的单词为例。为达到这个目的,我们使用一个非凡的字符“.”,常规表达式中的句号告诉Perl匹配其中的任何单独的字符。因此下面这个表达式:
$string =~ m/.ext/
将与单词“text”和“next”匹配。
不过,这个表达式并非完美,因为它与包含“ext”的更长单词的一部分相匹配,如“dextrous”和“flextime”。我们可以使用锚字符来限制匹配的位置。“^”字符匹配字符串的开头,因此:
$string =~ m/^.ext/
与“dextrous”匹配,但不与“context”匹配。
同样,“$”字符匹配字符串的结尾:
$string =~ m/.ext$/
与“context”匹配,但不与“dextrous”匹配。
假如你只希望匹配以“ext”结尾的四个字母的字符串,那么你可以组合使用上面的两个表达式,像这样:
$string =~ m/^.ext$/
现在,假如你需要匹配一组给定的字符,而不是句号位置的任何字符,那该怎么办呢?常规表达式通过使用方括号提供一个方法。以下面的表达式为例:
$string =~ m/^[tT]ext$/
这个表达式只与单词“text”和“Text”匹配。一对方括号将转换其中的任何单个字符。这个功能相当强大,例如:
$string =~ m/[aeiouAEIOU]/
假如$string变量中含有元音,则上面的例子返回真值。
假如括号中的第一个字符是“^”,这时它就不是一个锚字符,而是执行“非”操作,匹配不在括号内的任意字符,因此假如$string变量中只包含辅音或标点符号,可以对上面的例子进行调整,使它返回真值:
$string =~ m/[^aeiouAEIOU]/
方括号符号还可以指定字符的范围,让你不必列举一整串连续的数字或字母
Tags: Perl 常规 表达式 匹配
相关文章
- ·PHP常用正则表达式汇总(2013-11-13)
- ·三分钟学会PHP正则表达式(2013-11-13)
- ·巧用PHP正则表达式判断IP地址(2013-11-13)
- ·如何用正则表达式来表示中文?(2013-11-27)
- ·常用的php正则表达式收集(2013-12-03)
- ·正则表达式例子:将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式(2013-12-09)
- ·php 正则表达式获取网页所有网址和链接文字(2013-12-11)
- ·日期验证正则表达式(2013-12-11)
- ·php 正则表达式匹配中文汉字(2013-12-19)
- ·php中常用的正则表达式(日期 电话 html 中文 邮箱)(2013-12-23)
- ·php正则表达式提取图片地址 超链接 标题 实现代码(2014-01-03)
- ·PHP正则表达式匹配字符串中的指定标签(2014-01-05)
- ·php/js汉字正则表达式总结(2014-01-05)
- ·php如何对手机号码进行验证(2014-01-07)
- ·实例学习PHP中的正则表达式(2014-01-14)
- ·Email正则表达式与URL正则表达式(2014-01-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)