perl:正则表达式部分
使用简单模式匹配
若模式匹配的对象是$_的内容,只要把模式写在一对(/)中就可以了。
- #$_="yabba dabba doo";
- #if (/abba/){
- #print "it matched!\n";
- #}
unicode属性
若要匹配某项属性,只需要把属性名放入\p{PROPERTY}里面。比如有许多字符属于空白符,相应的属性名为Space,要匹配这类的字符可以
- if(/\p{Space}/) {
- print "The string has some whitespace.\n";
- }
若要匹配数字,可以用Digit属性
- if(/\p{Digit}/){
- print "The string has a digit.\n";
- }
把小写的p改成大写P,就表示否定意义,匹配指定属性意外的字符。
元字符
点号(.)是能匹配任意一个字符的通配符,换行符不能匹配。如果希望点号仅匹配他本身,则在他前面加上反斜线。即任何元字符前面加上反斜线,就会使它失去元字符的特殊作用。反斜线是我们的第二个元字符,要匹配真正的反斜线,请用两个反斜线表示。
- $_='a real \\ backslash';
- if(/\\/){
- print "It matched!\n";
- }
简单的量词
星号(*)用来匹配前面的条目出现零次或多次的情况。点号星号(.*)组合起来可以匹配任意字符零到无限次。加号(+)会匹配前一个条目一次以上,以及匹配空格。问号(?)匹配前一个条目出现一次或者不出线。
模式分组
在正则表达式中,()的作用是对字符串分组,()也是元字符。/fred+/匹配的是freddddd,/(fred)+/匹配的是fredfredfredfred,/(fred)*/匹配的是任意字符。
- $_="abba";
- if (/(.)\1/)
- #if(/(.)(.)/)
- {
- print "It matched some character next to itself!\n";
- }
反向引用不必紧接在对应的捕获组括号后面。下面的模式会匹配y后面的4个连续的非换行符,并用\1反向引用表示匹配d后也出现这4个字符的情况。
- $_="abba dabba doo";
- if(/y(....) d\1/)
- #if(/y(....) d(....)/)
- {
- print "It matched the same after y and d!\n";
- }
也可以用多个括号来分成多组,每个组都可以有自己的反向引用。
- $_="yabba dabba doo";
- if (/y(.)(.)\2\1/)
- #if(/y(.)(.)(..)(.)/)
- {
- print "It matched after the y!\n";
- }
下面这种情况perl匹配的是\1,\11还是\111呢?
- use 5.010;
- $_="aa11bb";
- if(/(.)\111/)
- {
- print "It matched!\n";
- }
perl会认为是\111,那么如何避免呢?
- use 5.010;
- $_="aa11bb";
- if (/(.)\g{1}11)/{
- print "It maatched!\n";
- }
转载于:https://blog.51cto.com/frozenfall/1058638
perl:正则表达式部分相关推荐
- perl正则表达式-1
.代表任何一个单字符,不匹配换行符. *是量词,表示前面内容出现0到多次. +也是量词,表示前面内容出现1到多次. 字符集简写 \d表示一个数字 \w表示一个单词字符()数字,字母,下 ...
- perl 正则表达式 引擎_Perl 5引擎概述
perl 正则表达式 引擎 正如我在" 我的DeLorean运行Perl "中所述,切换到Perl极大地提高了我的开发速度和可能性. 在这里,我将更深入地研究Perl 5的设计,以 ...
- perl正则表达式匹配中文
perl正则表达式匹配中文:/[^u4E00-u9FA5]/ js中正则表达式匹配中文:match(/[\u4E00-\u9FA5]/)
- Perl正则表达式讲解
转载:http://blog.sina.com.cn/s/blog_607254630101cvx3.html 9.3.1 原则1 正则表达式有三种形式:匹配.替换和转换. 在表 9-1 中列有三种正 ...
- Perl 正则表达式
Perl 正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. Pe ...
- Perl——正则表达式
Perl正则表达式 文章目录 Perl正则表达式 一.正则表达式的应用 二.正则表达式之元字符 2.1 转义 2.2 特殊匹配 2.3 匹配次数 2.4 各种括号 ( ),[ ],{ } 三.正则表达 ...
- Perl正则表达式(2) - 用正则表达式进行匹配
Perl正则表达式 2. 用正则表达式进行匹配 2.1 用 m// 进行匹配 到目前为止,我们都是讲正则表达式的内容写在一对斜线内,如/fred/.但其实这是 m// 的简写,其中m代表match,和 ...
- Perl正则表达式(1) - 正则表达式基础知识
Perl正则表达式 1. 基础知识 Perl中正则表达式(regular expression)默认匹配 $_ 中的字符串,匹配成功就返回真,否则返回假: Perl匹配正则表达式时,可以使用变量内插, ...
- 在 UltraEdit 和 UEStudio 中开始使用 Perl 正则表达式
作为 UltraEdit/UEStudio 查找/替换功能中最强大的组件之一,Perl 正则表达式使您能够在一次替换中重新格式化大量非均匀数据,从而为您节省几分钟甚至几小时的手动文本编辑时间! 要搜索 ...
- 浅谈Perl正则表达式
一.简介 Perl正则表达式中模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即Perl正则表达式中模式def.其用法如结合函数split将字符串用某Perl正则表达式中模式分成多个单词 ...
最新文章
- php cgi windows7安装,PHP For Windows64位
- Java之Character类
- seo模拟点击软件_网站用软件刷排名好不好?
- databasemetadata获取表注释_宏基因组测序中短序列的注释
- 模拟请求分页式存储管理 ---4种置换算法
- php怎样使用pdo,PHP中使用PDO_PHP教程
- Python工程师必看的面试问题与解答(中)
- 如何使用python装饰器_Python学习之如何使用装饰器 @decorator
- MyEclipse2014 优化设置
- jsp中用java写标签id_jsp中自定义标签用法实例分析
- python3.5安装教程及环境配置_Windows7环境下Python2.7与Python3.5共存安装
- Mysql基础系列(一)
- 文件对应的Content-Type类型
- 电量分析 —— 优化耗电
- zktime 协议_zktime5.0考勤管理系统使用说明书(1.0版).pdf
- word复制某些公式无响应处理方法
- OpenCV图像轮廓提取
- 秃如其来第一步之安装JDK
- 2020华为软件精英挑战赛历程总结——复赛篇
- java jcmd,JVM工具_jcmd
热门文章
- Micropython开发实例之TPYBoard v702GPRS功能测试
- 【干货】史上最全的Tensorflow学习资源汇总,速藏!
- iOS开发小技巧--利用苹果官方API播放视频(方法已经过时,了解一下)
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- WAV文件C++分析与显示
- 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
- Java虚拟机常见面试题
- HDU 4466 Triangle(计数)
- [原创]SSH密钥访问Git仓库配置
- NYOJ 353 3D dungeon 【bfs】