1767_Perl中的全词匹配

全部学习汇总: GreyZhang/perl_basic: some perl basic learning notes. (github.com)

当我在上一家公司工作的时候遇到过一个问题,为了解决软件接口的冲突我们需要把一个软件工程中的所有变量全都修改加一个前缀。我觉得用Perl处理是一个很好的注意,只需要做好正则表达式。最初我用于匹配变量的规则是:找到区分大小写的字符段,同时它的前后应该是没有其他的字母、下划线等单词,后面当前也不会有,而不应该有数字。最后写了一个简单的小脚本,还算是比较成功的,基本上不会出现什么问题。但是,有时候总是会零星出现一两个地方判断错误。运行的结果让我很费解,尽管我知道这肯定不会是Perl的问题,我依然是没有能够最终找到那里面的缺陷。

当时有个同事提到了全词匹配,我当时想,我做的这些正则表达式正是用于全词匹配啊,我还能够如何改进呢?当时公司的办公环境封闭,想借助于互联网寻找答案非常麻烦,因此只要是工作还能够就上网搜索一般是不会纳入考虑的范畴的。这似乎是汽车电子行业公司的一个通病,把自己的办公环境搞得很封闭。我现在的这家公司也是如此,甚至说因此给办公的环境带来了很多兼容性的障碍也依然如旧。

前阵子把一本新的Perl教程重新看了一遍,居然找到了一个全词匹配的功能,这让我十分高兴。还专门核对了下我最初学过的Perl教程,确实是少了这么一条。是,只要通过一个全词匹配的界定符实现全词匹配是十分简单的。大致通过代码演示一下:

1767_Perl中的全词匹配_第1张图片

以上代码执行结果:

上面这个例子仅仅是一个简单的常规匹配,修改代码如下:

1767_Perl中的全词匹配_第2张图片

以上代码为全词匹配,执行结果如下:

继续增加测试的例子:

1767_Perl中的全词匹配_第3张图片

上面的字符串应当能够满足全词匹配的规则,执行效果如下:

执行结果跟预期一致,也比我最初考虑的各种判断简单多了。

你可能感兴趣的:(perl,perl,开发语言)