位置: 编程技术 - 正文

一个perl扩展正则表达式代码分析(perl keys)

发布时间:2024-02-27
根据perlre文档的说明,一点一点解释。 首先是/x,用这个来去除regex里的空格,不然的话写在一行太难看懂了; 然后是^,表示从最开头开始; 然后是(?:,这个表示本括号不记入反向引用$&中; 然后是((?:d{1,3}.){3}d{1,3}),同样里面一个(?:,也就是说这一行匹配一个ip,并计为$1; 然后是(?=,这个表示在上面那行ip的正则后面必须出现符合本括号定义,同样也不计入$&(术语叫”零宽肯定前向断言”是吧?); 然后一个隔开ip的|; 然后是(?!,这个表示本括号内的东西绝对不能出现,同样也不计入$&(术语叫”零宽否定前向断言”是吧?); 然后是1,这个就是前面捕获的$1,跟上行解释的断言合在一起,就是|后面不能有和前面匹配的ip重复; 然后是(?1,这个表示前面捕获$1的正则表达式,也就是不重复ip的情况下,继续捕获新ip; 然后是),这个)闭合到|前面的(?:,也就是说|ip可以重复多个; 然后是z,这个是字符串边界,相当于单行里$的作用,在本例中可以互换,用在这里,就是为了让(?!1)的检查一直执行到最后; 然后是),闭合(?=; 然后是|和),这里闭合到^(,表示符合不重复ip条件的ip|格式不断正则匹配; 然后是(?1)$,定义最后一个ip,使用和$1相同的正则,也就是字符串至少要有一个ip。 OK,解释完毕。其实,从后往前看,反而清晰一些~~ 另:perlre中在(??{CODE})段的表述中有如下一段话“In perl 5..x and earlier, because the regex engine was not re-entrant, delayed code could not safely invoke the regex engine either directly with “m//” or “s///”), or indirectly with functions such as “split”.”,而(?R)和(??{CODE})做的是类似而简单的任务,所以如果linux发行版里带的perl版本不够高的话,这里就不能用(?1)的简单写法,需要自己再写一遍了。可以这么判断:

推荐整理分享一个perl扩展正则表达式代码分析(perl keys),希望有所帮助,仅作参考,欢迎阅读内容。

一个perl扩展正则表达式代码分析(perl keys)

文章相关热门搜索词:perl在文件中加入几行,perl-v,perl chmod,perl chmod,perl -ne,perl -ne,perl-v,perl -ne,内容如对您有帮助,希望把文章链接给更多的朋友!

perl实现blog备份的脚本代码 之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份sql。写个小脚本如下:#!/usr/bin/perlusewarnings;usestrict;useMySQL::Backup;useMail::Sender;o

perl中子程序中参数的两种引用(传递)方式介绍 下面是一个例子:usestrict;#这里是两个数组my@i=('1','2','3');my@j=('a','b','c');#在进行处理之前,我们把他们先打印出来,看一看他们的样子print"Inmainprogrambefor

perl 指定长度并生成一个随机的DNA序列的脚本代码 #!/bin/perlusestrict;usewarnings;#进行定义my@dna;my$dna_length;my$newbase;my$i=0;print"pleaseinputtheDNAlengthn";chomp($dna_length=);while($i$dna_length){#从四个碱基中随机选取一个my(@

标签: perl keys

本文链接地址:https://www.jiuchutong.com/biancheng/372537.html 转载请保留说明!

上一篇:perl 模块打包加入外部依赖程序(perl package)

下一篇:perl实现blog备份的脚本代码(perl -pe)

  • 合同执行过程中应该怎么做
  • 个体工商户营业执照需要什么材料
  • 分公司开专票需要缴税
  • 合伙企业法人股东
  • 甲方给的工程奖项有哪些
  • 非独立核算分公司个税怎么申报
  • 广告公司会议记录内容
  • 新公司的注册资本
  • 建筑企业预收款开具不征税发票为什么要预缴
  • 企业取得该项资产时实际发生的支出
  • 福利企业发放职工集资利息是不是要交个人所得税
  • 贷款未收属于什么科目
  • 本月支付上月运费
  • 购买可供出售金融资产的交易费用
  • 应交所得税的计算例题
  • 海关进口增值税专用缴款书是发票吗
  • pdf格式发票怎么打印标准大小
  • 亏损企业所得税汇算清缴怎么做
  • 协定存款分析及2018金融机构人民币存款基准利率表
  • 工程和技术研究和试验发展
  • 职工的经济补偿金是优先债权吗
  • 辅助核算的内容
  • 华为鸿蒙系统怎么降级版本
  • 公司交会费有什么用
  • u启动pe装机工具怎么重装系统
  • 公寓收费标准
  • url是什么软件
  • 当地街道
  • 分包工程的税金怎样处理
  • 供热企业税收优惠政策
  • 集团的资产
  • 企业重组特殊性税务处理计税基础
  • 购买农产品没有发票入帐怎么办
  • php 动态调用类方法
  • php如何实现
  • 报废的设备怎么处理
  • 浅谈双减背景下的高效课堂
  • 小规模纳税人结转未交增值税
  • 老师不干了可以从事什么行业
  • vue-router导航守卫
  • dedecms使用教程
  • wordpress安装插件无法复制
  • 财务软件服务合同要交印花税吗
  • 全年一次性奖金税率表2023
  • 进项税抵增值税
  • wordpress账号密码忘记了
  • 结转制造费用金额
  • 红字信息表重复开具怎么处理
  • 生产企业免抵退是什么意思
  • 维修费成本怎么结转
  • 转移固定资产是指什么
  • 现金日记账要如何做账
  • 基建结束后该做哪些工作
  • 不动产租赁行业代码
  • 被收购企业账务处理流程
  • 差旅费账务处理的摘要
  • 党委经费是国家政府出吗?
  • 确认医院体检收费怎么办
  • 汽车保险费能不能不交
  • 如何当好一个农民
  • mysql5.7压缩包
  • 彻底删除win8应用商店
  • ubuntu怎么修改网络配置
  • linux系统对硬件要求高吗
  • 设置u盘为只读
  • webtrapnt.exe - webtrapnt进程是什么意思
  • linux rpm包安装
  • linux就该这么
  • linux硬盘找不到
  • node.js实战
  • cocos2dx入门
  • Unity3D游戏开发(第2版)pdf
  • JS实现的ajax和同源策略(实例讲解)
  • jquery validation plugin
  • jquery滑动效果
  • 自动生成批量执行命令
  • unity-
  • Android开发工具箱
  • android底部弹出页面
  • 免征船舶吨税的范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号