1.

=~ 将正则式去匹配字符串,生成的结果是,如果正则式在字体串获得了匹配,值为真;否则,值为假。

2.  默认的分隔符//也可以用'm'加任意字符代替:

"Hello World" =~ m!World!;   #matches, delimited by '!'

"Hello World" =~ m{World};   #matches, note the matching '{}'

"/usr/bin/perl" =~ m"/perl";   #matches after '/usr/bin', '/' becomes an ordinary char

3.正则表达式区分大小写,正则式对空格敏感

4.如果正则式在字符串的多个位置都匹配,Perl首先匹配的是字符串的第一个位置。

5.不是所有的字符都能用在正则式去匹配,如下的元字符就是:

{}[]()^$.|*+?\

要匹配这些元字符,需要在元字符前使用反斜杠"\"做转义

"2+2=4" =~ /2+2/;   #doesn't match, + is a metacharacter
"2+2=4" =~ /2\+2/;  #matches, \+ is treated like an ordinary +

6.匹配式中有变量时,变量的值会先扩展,再进行匹配

7.^:在字符串的开始处匹配;      $:在字符串的结尾处匹配;

^和$还可以同时用,结果是正则式完全匹配整个字符串

8.字符类,表示可能字符的集合,而不是一个字符。字符类使用方括号[...]来表示

9.'i':对于不区分大小写的匹配,可以在正则式中添加修饰符'i'。

10.'-':字符类中的范围操作符;            如果'-'是字符类的第一个或最后一个字符,则它表示原义,不是范围操作符。

11.\d: 匹配数字,包括[0-9],以及非罗马数字;

\s: 匹配空格,包括[\ \t\r\n\f]等;

\w:匹配一个单词

\D:\d的反字符类,表示数字外的其他字符

\S:\s的反字符类,表示任何非空格的字符

\W:\w的反字符类,表示任何非单词的字符

'.': '.'表示匹配除"\n"(换行符)外的任何字符。但使用了//s时不起作用

\N:和'.'类似,匹配除换行符外的任何字符,和//s起不起作用无关。

12./\d\d:\d\d:\d\d/     匹配hh:mm:ss时间格式

/[\d\s]     匹配任意数字或空格

/\w\W\w/;   匹配单词,非单词,单词模式

/..rt/;       匹配两个字母后跟着'rt'

/end\./;    匹配'end.'

/end[.]/;    匹配'end.'

13.(//): no modifiers

(//s): s modifier

将字符串视为单一的长行

'.'  包括"\n"的任意字符               ^ 一行字符串的开始     $ 一行字符串的结尾

(//m): m modifier

将字符串视为多行的集合

'.' 除"\n"外的任意字符                 ^ 字符串内任意行的开始   $ 字符串内任意行的结尾

(//sm): both s and m modifiers

将字符串视为单一长行,但进行多检测

'.' 包含"\n"的任意字符                  ^ 字符串内任意行的开始    $ 字符串内任意行的结尾

14.在使用//m时,还可以使用锚符号:

\A:匹配字符串的开始        \Z:匹配字符串的结尾,包括换行符     \z:仅匹配字符串的结尾

15.|  :单词或字符串的选择元字符

16.() :分组元字符,可以将正则式的部分作为一个单元

17. 分组元字符()还有另一个功能:

将匹配的字符才能够字符串中提取出来。

18.$+ 指最高序号的变量

19.Perl除了提供匹配内容外,还通过数组@-和@+提供的匹配的位置信息:

$-[0] : 整个匹配结果在字符串中的起始位置

$-[n] : 第$n个匹配结果在字符串中的起始位置

$+[0] : 整个匹配结果在字符串中的结束位置

$+[n] : 第$n个匹配结果在字符串中的结束位置

20.?:匹配一次或零次;

* : 匹配零次或任意次

+ : 匹配以此或任意次;

{} : 匹配指定的次数

21.

a?? means: match 'a' 0 or 1 times. Try 0 first, then 1.

a*? means: match 'a' 0 or more times, i.e., any number of times, but as few times as possible

a+? means: match 'a' 1 or more times, i.e.,at least once, but as few times as possible.

a{n,m} means: match at least n times, not more than m times, as few times as possible.

a{n,}? means: match at lease n times, but as few times as possible

a{n}?means:match exactly n times.Becase we match exactly n times,a{n}? is equivalent to a{n} and is just there for notainal consistency.

22. g 和 pos()一起配合使用,能搜索整个文本

23. 搜索替换的语法:  s/regexp/replacement/modifiers

24.\l:将下一字符转换成小写        \u:将下个字符转换成大写

学习“Perl基础教程:正则表达式”之摘录相关推荐

  1. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  2. 街舞学习APP基础教程开发

    街舞学习APP开发,街舞学习APP开发教程.随着移动互联飞速发展,大家可以在网络上获得各种学习培训资讯,但这种资讯大部分真假难分,因此用户要想寻找有价值的信息内容通常需耗费很多的时长和活力.少儿街舞因 ...

  3. Python学习入门基础教程(learning Python)--6.3 Python的list切片高级

    上节"6.2 Python的list访问索引和切片"主要学习了Python下的List的访问技术:索引和切片的基础知识,这节将就List的索引index和切片Slice知识点做进一 ...

  4. 前端学习-JavaScript基础(正则表达式)

    正则表达式 正则表达式在很多程序设计语言都有,大同小异,尤其是在Python爬虫的使用很多,我也就跟他们学习爬爬图片,小视频啥的,咳咳都是学习资料.在JavaScript中,使用比较多的是表单验证,字 ...

  5. Python学习入门基础教程(learning Python)--2.3.5Python返回多个值问题

    本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. [python]view plaincopy #def ...

  6. Python学习入门基础教程(learning Python)--1.4 Python数据处理基础 .

    本节主要讨论数据操作及运算符等基础知识,熟悉C语言相关知识的读者请跳过此节. 在高级语言编程过程中,有了数据以后通常要对数据进行相应的数据处理,加.减.乘.除等基本运算,不难理解. 在Python里 ...

  7. Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  8. Python学习入门基础教程(learning Python)--5.3 Python写文件基础

    前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...

  9. Python学习入门基础教程(learning Python)--5.5 Python写操作详解

    在前文5.3节我们简单的学习了如何在Python里进行文件的写操作,所举例里写入的都是字符串数据,那我们现在想写入数值型数据可以直接写入么?我们先看看下边的程序是否能正常运行? wfile = ope ...

最新文章

  1. linux之find -regex 使用正则表达式
  2. C++工程中初步使用QML
  3. Go并发编程之美-读写锁
  4. Spring Cloud原理
  5. asp.net页面回传与js调用服务端事件,Postback的原理
  6. MySQL存储引擎及InnoDB并发控制介绍
  7. python pil png合成gif储存时变黑_教你用Python花式搞定二维码
  8. 【MATLAB】饼图
  9. 如何修改Myeclipse的JSP模板
  10. url传值的长度限制解决方法
  11. Linux下常用的优秀软件
  12. matlab转换器dcdc,关于如何用 Simulink 设计 DC/DC 转换器的分析和介绍
  13. “扣哒杯” AI世青赛全国决赛落幕 集体奖和一等奖附加赛名单揭晓
  14. 指南|查询美国的关税清单
  15. shiro 登陆成功后subject依然为空
  16. MySQL使用存储过程批量插入百(千)万测试数据
  17. 利用开源软件 Hugin 实现照片的景深合成
  18. 一起来看看,除夕夜有哪些走心的文案?
  19. StringUtil 用法
  20. 迁移学习---举一反三

热门文章

  1. apache ab压力测试学习
  2. 缓存之EHCache
  3. Effective Java之接口优先于反射机制(五十三)
  4. 算法训练营01-学习总览
  5. 搜索引擎索引之如何建立索引
  6. 搜索引擎设计实用教程(5)-以百度为例
  7. 计算机网络实验(华为eNSP模拟器)——第十三章 VLAN注册协议(GVRP)
  8. 中标麒麟linux系统忘记root密码,中标麒麟(龙芯CPU)--忘记root密码怎么修改?
  9. 转储的mysql如何导入,如何将大型(14 GB)MySQL转储文件导入新的MySQL数据库?
  10. hdfs数据节点分发什么协议_HDFS主要节点解说(一)节点功能