perl学习笔记之(一)

本文介绍了Perl语言中正则表达式的高级应用技巧,重点讲解了前瞻和后顾的概念及其实战案例,帮助读者深入理解并掌握这些特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次在简书记笔记,就当做自己的学习笔记

最近在学习perl语言正则表达式章,几个感觉大彻大悟的问题在这里记录下省得自己忘记了

1、前瞻(?=pattern ?!pattern)和后顾(?<=pattern ?<!pattern)

之前一直觉得前瞻和后顾很抽象,如何前瞻,如何后顾?

(一)举个前瞻栗子(骆驼书上的栗子):$string="Paris in the the the spring"删除字符串内的重复字符

s/\b (\w+) \s (?=\1 \b)//gxi;

解析该正则表达式:1、\b匹配单词边界移动到the前沿;

                                    2、(\w+)匹配单词字符直到遇到空格,在这就匹配第一个the;

                                    3、\s匹配第一个the后的空格,关键来了(严肃脸)?=前瞻操作符不听话偷偷瞄一眼我们匹配到的\s(the后的空格)后是什么玩意儿,结果看到了一个the,好发现它和第一个捕获组(\w+)捕获的一样,匹配成功。

                                    4、把pattern中匹配到的字符替换成空字符。

负前瞻的栗子自己想很简单

(二)举个后顾的栗子:$string="love u baby"我只想匹配u前面是love的情况怎么写正则表达式?

/(?<=love) \s u .*/            正则表达式匹配到空格后回头看一眼是不是love,是的话继续匹配下去,不是的话向前移动。


2017年2月15日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值