Perl正则表达式

文章目录

  • Perl正则表达式
  • 一、正则表达式的应用
  • 二、正则表达式之元字符
  • 2.1 转义
  • 2.2 特殊匹配
  • 2.3 匹配次数
  • 2.4 各种括号 ( ),[ ],{ }
  • 三、正则表达式的匹配模式
  • 四、Perl的绑定操作符

一、正则表达式的应用

正则表达式常有两个应用,一个是查找,一个是替换,替换的核心也是查找。

查找的一个格式:
m/……/匹配模式

替换的一个格式:
s/ ……/替换内容/匹配模式

匹配的规则写在两个斜杠之间,定义规则的字符称为元字符。

二、正则表达式之元字符

2.1 转义

\ : 反斜杠加元字符表示转义,比如 +,*,?,表示这些字符本身。
\b : 匹配单词边界
\B : 匹配非单词边界
\d : 匹配数字0—9中任意一个字符
\D: 匹配非数字
\w: 匹配包括下划线的任何单词字符
\W: 匹配包括非下划线的任何单词字符
\s: 匹配空白字符,包括空格,制表符等
\S: 匹配非空白字符
\n: 匹配换行符
\t: 匹配制表符
\x \x后接十六进制数,匹配这个数的ASCII码对应的符号

2.2 特殊匹配

^ :匹配开头
$ :匹配结尾
. :匹配除换行符外所有字符

2.3 匹配次数

* :匹配0次或多次
+ :匹配一次或多次
\?: 匹配0次或1次

2.4 各种括号 ( ),[ ],{ }

( ) :圆括号内取值,把括号里的值存在$1,$2,……$n里
[ ] :表示多选一。如[abc]匹配a或b或c。连续的字符可以简写如[a-z],[0-9]。
[ ^ ] :表示[ ]里列出的其它字符。
{n} :表示匹配n次
{n,m} : 表示匹配n到m次
| :分组,如m/bill | mike/ 表示bill 或 mike
? :当跟在*,+,?后面表示非贪婪模式。详见Perl——正则表达式之贪婪模式和非贪婪模式

perl 中$1 $2代表的含义
以数字为名的变量保存的是上一次匹配操作(/pattern/)中,第n个小括号中的原符号所匹配内容。
$1就是第一对小括号中的原符号所对应的匹配内容。
$2就是第二对小括号中的原符号所对应的匹配内容。

my $str = "<p>hello world !</p>"; #被匹配文本
if ($str =~ /<p>(.*?)<\/p>/gs)#匹配<p>...</p>,<\/p加的\代表后面的符号不进行转义 {     print "\$1 mean: $1";#$1 mean: hello world !}

三、正则表达式的匹配模式

g: global匹配,可以匹配多次
i: 不区分大小写
m:换行匹配
e: 替换的值要先计算 s/(ab+c)/&replace($1)/e,表示查换ab+c,并把找到的结果传给replace()函数,用函数的返回值来替换。这种方法可用于复杂的查找替换。
x: 允许换行加注释,忽略空白字符
s:单行处理,这个模式下元字符可以匹配换行符

利用正则表达式的通配符设置不可用单元名称
——set tech_vars(dont_use_list) [list FRICG* DCG* SDFFX* SDFFN* SDFF4W ]
将以上BUFFER和标准单元设置成不可用。

四、Perl的绑定操作符

=~ :表示满足匹配
!~ : 表示不满足匹配

if($tc =~ m/^tc_/) {……}
#表示如果$tc变量以tc_开头,则执行{}里的语句。
if($tc !~ m/^tc_/) {……}
#表示如果$tc变量不是以tc_开头,则执行{}里的语句。

Perl——正则表达式相关推荐

  1. perl正则表达式-1

    .代表任何一个单字符,不匹配换行符. *是量词,表示前面内容出现0到多次. +也是量词,表示前面内容出现1到多次. 字符集简写     \d表示一个数字     \w表示一个单词字符()数字,字母,下 ...

  2. perl 正则表达式 引擎_Perl 5引擎概述

    perl 正则表达式 引擎 正如我在" 我的DeLorean运行Perl "中所述,切换到Perl极大地提高了我的开发速度和可能性. 在这里,我将更深入地研究Perl 5的设计,以 ...

  3. perl正则表达式匹配中文

    perl正则表达式匹配中文:/[^u4E00-u9FA5]/ js中正则表达式匹配中文:match(/[\u4E00-\u9FA5]/)

  4. Perl正则表达式讲解

    转载:http://blog.sina.com.cn/s/blog_607254630101cvx3.html 9.3.1 原则1 正则表达式有三种形式:匹配.替换和转换. 在表 9-1 中列有三种正 ...

  5. Perl 正则表达式

    Perl 正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. Pe ...

  6. Perl正则表达式(2) - 用正则表达式进行匹配

    Perl正则表达式 2. 用正则表达式进行匹配 2.1 用 m// 进行匹配 到目前为止,我们都是讲正则表达式的内容写在一对斜线内,如/fred/.但其实这是 m// 的简写,其中m代表match,和 ...

  7. Perl正则表达式(1) - 正则表达式基础知识

    Perl正则表达式 1. 基础知识 Perl中正则表达式(regular expression)默认匹配 $_ 中的字符串,匹配成功就返回真,否则返回假: Perl匹配正则表达式时,可以使用变量内插, ...

  8. 在 UltraEdit 和 UEStudio 中开始使用 Perl 正则表达式

    作为 UltraEdit/UEStudio 查找/替换功能中最强大的组件之一,Perl 正则表达式使您能够在一次替换中重新格式化大量非均匀数据,从而为您节省几分钟甚至几小时的手动文本编辑时间! 要搜索 ...

  9. 浅谈Perl正则表达式

    一.简介 Perl正则表达式中模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即Perl正则表达式中模式def.其用法如结合函数split将字符串用某Perl正则表达式中模式分成多个单词 ...

最新文章

  1. opencv和halcon标定参数结果对比
  2. 在小程序开发路上踩过的小坑
  3. 如何快速上手 AB Testing ?阿里技术专家秘方公开
  4. php5 php4,自动实现php4和php5环境的切换......
  5. 背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 1
  6. python怎样画动态文字_Python制作动态字符图的实例
  7. (5)Linux进程调度-CFS调度器
  8. 历法 —— 星期与“日月火水木金土”
  9. Servlet期末复习二
  10. (转)暴涨、闪崩、分叉,监管,现在是投资机会?
  11. Vue安装步骤及教程(详细)
  12. 使用unity制作游戏——打砖块
  13. lombok 不生效
  14. 性格与领导力 ——不可不知的DISC 性格学
  15. Windows更改远程桌面默认使用的3389端口
  16. 【中级软考—软件设计师】2操作系统2.3进程调度【****】:2.3.3考点三:前趋图与PV操作
  17. Centos7关闭锁屏界面
  18. autodock无map文件_“分子对接技术”之使用AutoDock进行半柔性对接教程
  19. 英语单词: thunk
  20. 页面布局--上下固定中间自适应出现滚动条布局

热门文章

  1. 如何添加URL服务器到站点,当URL来自互联网服务器时,如何将自定义css...
  2. python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf)
  3. (表白神器)绘制心形曲线
  4. LintCode领扣算法问题答案:149. 买卖股票的最佳时机
  5. 输出华氏--摄氏温度转换表
  6. 新硬盘挂载目录后文件消失解决办法
  7. 融云IM报错connect should be called in main process
  8. echarts 图表的滚动条
  9. 使用Suricata和ELK进行网络入侵检测
  10. java利用core 工具实现二维码的生成与解析