第六章 正则表达式

1,if匹配

 

 if($regu =~ m/expression/){

 } 

      #正则表达式m可省略,也可使用$_, 即if(/expression/), 相当于$regu = $_; 省略匹配符=~ 和 m

2, 匹配+ &&print

 

  if($line=~m" \b(\w+)\b"){print "$l\n";}  
 等同于:($line=~m" \b(\w+)\b")&&(print " $l\n";);

    #匹配符号可以是任何的," "; # #; ! !; 等, 不同于split(":",$_) , split(/[^0-9]/,$_),双引号不同于//.

3.在数组环境下的匹配(无修饰符)

  这会匹配正则表达式能匹配的第一个位置,接着简单地把反向引用放入一个可快速访问的表中。例如:

($variable,$equals,$value) = ($line = ~m" (\w+)\s*(=)\s*(\w+)");

  该代码取到第一个引用(\w+),使之成为$variable;取到第二个引用(=)使之成为$equals;然后取到第三个引用(\w+),使之成为$value。

4.在数组环境下匹配(g修姊符)

  取到正则表达式,尽可能多地应用它.然后把结果放人到由所有可能匹配组成的数组中,

例如:

$line = ‘1.2 3.4 beta 5.66‘;

@matches = ($line =~m" (\d*\.\d+)" g);

  将使@matches等于1.2,3.4,5.66。g修饰符完成迭代,首先匹配1.2,其次是3.4,第三是5.6。

部分参考:http://depancao.blog.163.com/blog/static/21025503720127810726692/

5.模式中的特殊字符 捕获变量()

  圆括号的作用是对字符进行分组,同时圆括号之间的正则表达式内容都会被捕获,匹配变量依次命名为$1,$2,…;括号有多少对,匹配变量就有多少个。

举例:

my $name = “ID=GL0012;Parent=Scaffold1”;

$name =~ /ID=(\S+);Parent=(\S+);

print “$1\n”; # 输出 GL0012

print “$2\n”; # 输出 Scaffold1
时间: 2024-08-08 13:50:52

第六章 正则表达式的相关文章

第十六章 在文件中搜索文本工具:grep命令 和egrep命令

第十六章 在文件中搜索文本工具:grep命令 和egrep命令 名词解释 grep(global search regular expression(RE)and print out the line,全面搜索正则表达式并把行打印出来) grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 选项 - -a :不要忽略二进制数据 - -A <显示行数>:除了显示符合范本样式的那一行之外,并显示该行之后的内容. - -b :在显示符合范本样式的那一行之外,并显示该行

软件构造 第六章第三节 面向可维护的构造技术

第六章第三节 面向可维护的构造技术 基于状态的构造技术 状态模式(State Pattern) 备忘录模式(Memento Pattern) Grammar-based construction 使用grammar判断字符串是否合法,并解析成程序里使用的数据结构 . 正则表达式 通常是递归的数据结构 . terminals 终止节点.叶节点 nonterminal 非终止节点(遵循特定规则,利用操作符.终止节点和其他非终止节点,构造新的字符串) 三个基本语法的操作符: 连接,不是通过一个符号,而

第六章、forms组件

目录 第六章.forms组件 一.注册功能手写 二.forms组件完整写法 基本使用 三.forms组件前端渲染标签组件 三.forms组件其他知识点 在python console测试 校验数据 form组件数据校验的规则 四.其他几个常见字段类型 五.forms组件所有内置字段类型 六.forms组件的字段常见参数 用正则来约束 七.forms组件钩子函数 八.通过后端修改前端的样式 第六章.forms组件 一.注册功能手写 要求 1.注册功能 用户输入的用户名中 不能包含西游记 如果包含了

数据库系统实现 第六章 查询执行

第六章 查询执行 查询执行也就是操作数据库的算法 一次查询的过程: 查询-->查询编译(第七章)-->查询执行(第六章)-->数据 查询编译预览 查询编译可以分为三个步骤: a)分析:构造分析树,用来表达查询和它的结构 b)查询重写,分析树被转化为初始查询计划,通常是代数表达式,之后初始的查询计划会被优化为一个时间更小的计划 c)物理计划生成,将查询计划转化成物理的计划, 为了选择更好的查询计划,需要判断 1)查询哪一个代数的等价形式是最有效的 2)对选中形式的每一个操作,所使用的算法选

第六章:异常机制

第六章:异常机制 异常的定义 异常:在程序运行过程中出现的意外事件,导致程序中断执行. 异常处理 try...catch 语法:try{ //可能出现异常的代码}catch(异常类型 异常对象名){ //处理异常的代码:}执行过程:当try中的代码异常发生时抛出一个异常对象,该异常对象与catch中异常类型进行匹配,匹配成功进入catch块,否则不执行catch中代码(相当于异常未被处理).程序只有当异常处理成功后才能继续执行. try...catch...catch 语法:try{ //可能出

2017上半年软考 第六章 重要知识点

第六章 项目整体管理 []项目整体管理概述 [][]项目整体管理的含义.作用和过程 项目整体管理6个过程?p264 项目整体管理包括什么? 项目管理的核心是什么? 项目整体管理涉及哪几个方面?p265 [][]项目经理是整合者 项目经理作为整合者要做什么?p265 [][]整体管理的地位 []项目整体管理实现过程 [][]制定项目章程概述 项目章程的意义是什么? 项目章程包括什么? [][]制定项目章程 项目章程的作用? 项目章程的输入? 制定项目章程的工具和技术?p267 项目章程的输出?p2

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

Linux与云计算——第二阶段Linux服务器架设 第六章:目录Directory服务器架设—FreeIPA

Linux与云计算--第二阶段Linux服务器架设 第六章:目录Directory服务器架设-FreeIPA 1 FreeIPA 配置FreeIPA服务器 Configure IPA Server to share users' account in your local network. [1] Install FreeIPA. [[email protected] ~]# yum -y install ipa-server ipa-server-dns bind bind-dyndb-lda

APUE读书笔记-第六章 系统数据文件和信息

昨天看完了,今天来看看第六章.感觉第六章的内容不是非常重要.简单看看吧 6.2 口令文件 口令文件其实就是/etc文件夹下的passwd文件,但处于安全性的考虑,我们无法直接读取它.就是通过直接限制权限的方式对其进行保护,passwd文件具体权限如下: -rw-r--r-- 1 root root 可以看到只有root用户具有读写权限,与root同组的用户与其他用户仅具有读权限. 不过为了解决以上问题,Linux中给出了一系列数据结构与函数帮助我们操纵口令文件,首先是关键数据结构,定义位于/in