1、正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*、+ 和?等),以及模式修正符三个部分组成。
2、在于Perl兼容的正则表达式函数中使用模式时一定要给模式加上定界符,即将模式包含再两个反斜线  /  之间 。

一、定界符
再使用Perl兼容的正则表达式时,要将模式表达式放进定界符之间。作为定界符不仅仅局限使用"/",除了数字、字符、和反斜线\意外的任何字符都可以作为定界符号。不过通常都习惯讲模式表达式包含在两个斜线/之间。

二、原子
原子是正则表达式的最几本组成单位,再每个模式中最少要包含一个原子。
1、普通字符作为原子
   a~z    、A~Z 、0 ~ 9等

2、一些特殊字符和元字符作为原子
任何一个符号都可以当做原子使用,但是如果这个符号再正则表达式中表示一些特殊涵义。则必须使用转义字符取消特殊涵义,将其变成普通原子。

3、一些非打印字符作为原子

所谓的非打印字符,就是一些在字符串中的格式控制符号。例如空格、回车、以及制表符。
   

4、使用“通用字符类型"作为原子
  不管是打印字符还是非打印字符作为原子都是一个原子只能匹配一个字符。而有事我们需要一个原子可以匹配一类字符。如匹配数字、匹配字母。

5、自定义原子表([])作为原子

使用自定义出特定的“类原子”,使用原子可以定义意足彼此平级的原子。
如“/[jhp]sp/” 可以匹配jsp 、hsp 、psp三种

三、元字符
 利用Perl正则表达式还可以使用各种元字符来搜索匹配。所谓元字符,就是用于构建正则表达式的具有特殊涵义的字符。如 . * ? + 等。在一个正则表达中,元字符不能单独出现,它是用来修饰原子的。如同我们中文的形容词一样,必须有形容的主体才醒。例如:我很帅。帅是形容词,形容的是我。元字符可以做这方面的理解和想象。
    构建正则表达式的方法和写文章的方法一样,就是使用多种形容词将某个人物或者事情清晰直观的表达出来。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者是所有这些组件的任意组合。下面将这些字符分为几个小类,分别阐述。

  
  1、限定符。限定次数。
  2、边界限制
  3、原点,在字符之外,模式中的原点可以匹配目标中的任意一个字符,包括不可打印字符,但不匹配换行符。如果设定了模式修正符s,则也会匹配换行符。
  4、模式选择符(|)匹配选项中的任意一组。
  5、模式单元。使用元字符()将多个原子组成大的原子,被当做一个单元独立使用。
  6、后向引用。
  7、模式匹配的优先级:从左到右。
 
四、模式修正符。
  

PHP -- Perl风格正则表达式的更多相关文章

  1. perl的正则表达式

    “小骆驼”的“正则表达式“部分学习总结: 一.匹配语法: 1.".":任意单字符(‘\n‘除外): 2.“*“:匹配前项0-n次: 3.“+“:匹配前项1-n次: 4.“?”:匹配 ...

  2. smix到底是个啥?Perl的正则表达式匹配模式

    最近在研究一个perl项目,临时学习了一下perl语法,强行看项目源码.因为总是见到各种正则表达式后面接smxi之类,虽然知道是匹配模式,但脑子里毫无概念.所以特地去学习了一下. 以上为背景. Per ...

  3. Perl入门(四)Perl的正则表达式

    正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求.高效的正则表达式,还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正则表达式内容/; 作用:查找匹配内容中是否 ...

  4. perl 之 正则表达式 (简)

    正则表达式,简单介绍: 元字符 匹配项 字符类:单字符与数字   . 匹配除换行符之外的任意字符 [a-z0-9] 匹配集中任意单字符 [^a-z0-9] 匹配不在集合中的任意单字符 \d 匹配单个数 ...

  5. 传统IO与NIO的比较

    本文并非Java.io或Java.nio的使用手册,也不是如何使用Java.io与Java.nio的技术文档.这里只是尝试比较这两个包,用最简单的方式突出它们的区别和各自的特性.Java.nio提出了 ...

  6. java 的nio与io对比

    转:本文并非Java.io或Java.nio的使用手册,也不是如何使用Java.io与Java.nio的技术文档.这里只是尝试比较这两个包,用最简单的方式突出它们的区别和各自的特性.Java.nio提 ...

  7. 解析posix与perl标准的正则表达式区别 ---PHP

        正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式.正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用 来描述或者匹配一系 ...

  8. perl正则表达式第一周笔记

    正则表达式基础 ^ 行首标志 $ 行末标志 如^cat即一整行只有cat这个单词,^则是一个空行 [  ] 字符组,用来匹配若干字符之一 如gr[ae]y,即grey或者gray - 在字符组内部,字 ...

  9. perl学习笔记之:正则表达式

     Perl 中的正则表达式 正则表达式的三种形式  正则表达式中的常用模式  正则表达式的 8 大原则          正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过 ...

随机推荐

  1. MySQL查看数据库相关信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令   1:查看显示所有数据库 mysql> show databases ...

  2. Linux AVG ANTIVIRUS FREE使用介绍

    杀毒软件AVG,没有用过估计也有所耳闻.AVG ANTIVIRUS FREE - FOR LINUX 是AVG在Linux下的一款免费杀毒软件.它的官方下载地址供了rpm.deb.源码安装包等多种安装 ...

  3. Ignite安装配置——上篇

    Ignite介绍 Ignite 是SolarWinds公司开发的一款数据库性能监控.性能分析并提供优化解决方案的性能检测分析工具,Ignite配置简单.方便:它会收集实时会话数据.服务器资源使用情况, ...

  4. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  5. MongoDB学习笔记——分片(Sharding)

    分片(Sharding) 分片就是将数据进行拆分,并将其分别存储在不同的服务器上 MongoDB支持自动分片能够自动处理数据在分片上的分布 MongoDB分片有三种角色 配置服务器:一个单独的mong ...

  6. php 三种数组

    在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 获得数组的长度 - count() 函数

  7. Linux yum如何下载rpm包到本地

    下载前先安装一个小插件 [root@wang yum.repos.d]# yum install -y yum-plugin-downloadonly 安装一个包的同时 加上 yum install ...

  8. PhotoShop算法原理解析系列 - 像素化---》碎片。

    接着上一篇文章的热度,继续讲讲一些稍微简单的算法吧. 本文来讲讲碎片算法,先贴几个效果图吧:             这是个破坏性的滤镜,拿美女来说事是因为搞图像的人90%是男人,色色的男人. 关于碎 ...

  9. MATLAB的一些基础知识

    1.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗? ...

  10. Hibernate里save(),saveOrUpdate(),merge(),update()的区别

    save()方法用于将一个临时对象转变为持久化对象,也就是将一个新的业务实体保存到数据库中:update()方法用于将一个游离对象重新转变为持久化对象,也就是更新一个已经存在的业务实体到数据库中:sa ...