使用Perl常规表达式进行匹配

长期以来,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]/

方括号符号还可以指定字符的范围,让你不必列举一整串连续的数字或字母

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 使用Perl常规表达式进行匹配

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡