正则表达式--php基础最详细教程

原创 2016年08月30日 21:59:59

正则表达式简介 原创



概念: 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。


作用:
1.匹配,也常常用于从字符串中析取信息。
2.用新文本代替匹配文本。
3.将一个字符串拆分为一组更小的信息块。


说明:
如果可以使用字符串处理函数处理的任务,就不用使用正则。有一些复杂的操作,只能使用正则完成。
正则表达式也称可以在很多计算机语言中的应用。正则表达式也称为一种模式表达式。正则表达式就是
通过构件特定的规则模式与输入的字符信息比较。再进行分割匹配、查找、分割、替换等工作。


学习正则表达式时,有两方面需要学习:
一、正则表达式的模式如何编写
二、学习正则表达式的强大处理函数


正则表达式的语法规则


语法规则概述


特点:
一、正则表达式是一个字符串
二、由具有特殊意义的字符组成的字符串
三、具有一点编写规则也是一种模式
四、看作是一种编程语言(是用一些特殊字符按规则编写出一个字符串形成一种模式--正则表达式)
注意:如果正则表达式不和函数一起使用,则它就是一个字符串,如果将正则表达式放在到某个函
数中使用,才能发挥出正则表达式的作用。
      用到分割函数中,就可以用这个正则去分割字符串。
      用到替换函数中,就可以用这个正则去替换字符串。
。。。。。。
   “/\<img\s*src=\".*?\"\/\>/”


定界符


说明:
除了字母、数字和反斜线“\”以外的任何字符都可以为定界符
||
//   默认
{}
!!
注意:没有特殊需要我们都使用正斜线作为正则表达式的定界符号


原子


概念:原子是正则表达式的最基本组成单位,而且必须至少要包含一个原子。只要
     一个正则表达式可以单独使用的字符,就是原子


1.所有打印和非打印机字符
打印(可以在键盘上输出的字符A-Z a-z 0-9非打印字符(回车、空格、无法在屏幕上输出的)
2. . * + ? <> 如果所有有意义的字符想作为原子使用,统统使用“\”转义字符转义这些有意义的字符,可以
      将有意义的字符转成没有意义的字符,这个可以将没有意义的字符转为有意的。
3. 在正则表达式中可以直接使用一些代表范围的原子:
      \d:表示任意一个十进制的数字 [0-9]
      \D:表示任意一个除数字之外的字符[^0-9]
      \s:表示任意一个空白符 [\n\t\f\r] 空格 回车 Tab键
      \S:表示任意一个非空白符 [\n\t\f\r] 空格 回车 Tab键。
 \w:表示任意一个字a-zA-Z0-9_  [A-Za-z0-9_]
      \W:表示任意一个非字除a-zA-Z0-9_     [^A-Za-z0-9_] 
4.自己定义一个原子表,使用[]可以匹配括号中的任何一个原子。
      [abc567] 匹配 a或b或c或5或6或7  
      [a-f]  [3-5] [-]表示一段范围。a到f  3到5 包括 a f 3 5
      [^a-g]    [^]取反就是除了原子表中的原子。


正则表达式中常用的非打印字符:
\cx 匹配由x指明的控制字符。如\cM匹配一个Control-M或回车符。x的值必须为A~Z或a~z之一。
\f 匹配一个换页符。等价于 \x0c或\cL
\n 匹配一个换行符。等价于 \x0a或\cJ
\r 匹配一个回车符。等价于 \x0d或\cM
\t 匹配一个制表符。等价于 \x09或\cI
\v 匹配一个垂直制表符。等价于 \x0b或\cK




元字符


概念:元字符是一种特殊的字符,是用来修饰原子用的,不可以单独出现。


* :表示其前的原子可以出现0次、1次或多次(任意次)。  {0,}
+ : 表示其前的原子可以出现1次、或多次。    {1,}
?  : 表示其前的原子可以出现0次、或1次。     {0,1}
.   : 默认情况下除换行符外任意一个字符。
|   : 表示或者的关系 cat|dog   com|cn 优先级最低,优先匹配 cat或dog com或cn
\b : 表示一个边界   \bis\b    This is island     is  边界:空格和字符串行首行尾。
\B : 表示一个非边界  \Bis\b  This is island   This 的 is  非空格。
{  } 详解:
{m}  m表示一个整数,{5}表示前面的原子出现5次。
{m,n} m和n表示一个整数,m要少于n 表示前面的原子最少m次,最多n次。
{m,}   表示前面的原子最少出现m次,最多不限。
^  :只能在一个正则表达式的第一个字符出现,则表达式必须以这个正则表达式开始  ^one
$    : 只能在一个正则表达式的最后一个字符出现,则表达式必须以这个正则表达式结尾 one$
( ) 详解:
一、作为大原子子使用   (ftp)+
二、改变优先级    ca(t|d)og
三、作为子模式使用,正则表达式不光对一个字符匹配一次
四、可以取消子模式就( )作为大原子和优先级使用(?: )在括号中原子的前面使用 ?:取消子模式
五、反向引用可以在模式中直接将子模式取出在作为正则表达式一部分,如果是在正则表达式像
      替换函数preg_replace 函数中可以将子模式取出,在替换字符串使用 
  单引号中  \1 \2 \..   双引号中 \\1  \\2 \\..
  其他位置使用使用子模式可用 ${1}  ${2}  ${..} 不能在正则表达式中用。 
注意:是单引号和双引号括起来的正则;


优先级:由高到低
1 \ 转义字符
2 ()  (?:)  (?=)  []模式单元和原子表
3 *  +   ?  {n}  {n,} {n,m}重复匹配
4 ^  $  \b  \B  \A   \Z边界限制
5 | 模式选择




模式修正符


概念:是对原子和元字符功能上的扩展和补充。
“/       /模式修正符”
1.就是几个字母而已
2.可用一次使用一个 每个具有一定的意义,也可以使用多个
3.是对整个正则表达式调优使用也可以说是对正则表达式功能的扩展


常用模式修正符号:
i  :表示在此模式下匹配不区分大小写
m :默认情况将字符串视为一行,加m 会识别字符串中的回车换行 及识别多行  那么每行都可以存在^ $ 这样的开头和结尾匹配元字符修饰
s  :如果没有使用这个模式修正符号时元字符中"."默认不表示换行符号,而是表示任意一个字符。
x  :模式中的空白忽略
A  :必须以什么开头
Z  :必须以什么结尾
U  :正则表达式特点就是”贪婪“    .*  .+ 都会引发贪婪
     一、使用模式修正符 U 来关闭贪婪
     二、使用?取消贪婪模式   .*?  .+?
     三、一和二同时使用还是会开启贪婪。


与Perl兼容的正则表达式函数


说明:在PHP中给我们提供两套正则表达式函数库:
POSIX 扩展正则表达式函数(ereg_)
Perl 兼容正则表达式函数(preg_)
这个两个函数库功能一样,找个处理效率高的
注意:推荐使用Perl兼容正则表达式函数库(只学这个)






字符串的匹配和查找


字符串的替换


字符串的分割和连接


实例:文章发布操作示例



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

正则表达式--php基础最详细教程

正则表达式简介 原创 概念: 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。 作用: 1.匹配,也常常用于从字符串中析取信息。 2.用...

正则表达式基础教程

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

正则表达式基础教程

正则表达式是一个用来描述或匹配一些列符合某个句法规则的字符串的单个字符串。 应用举例: 防止SQL注入采集验证数据 与通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精...

正则表达式基础教程

编写验证规则最流行和最简单的方法就是正则表达式了,但唯一的一个问题是正则表达式的语法太隐晦了,让人蛋疼无比。很多开发者为了在项目中应用复杂的验证,经常要使用一些小抄来记住正则式的复杂语法和各种常用命令...

php正则表达式详细说明

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

PHP基础正则表达式

正则表达式 去除连续空白 + 获取url +分割url PHP正则表达式提取超链接及其标题 对于开发人员来说, 正则表达式是一个非常有用的功能。 它提供了 查找, 匹配, 替换 句子, 单词, ...

PHP正则表达式基础

正则表达式简介 转自:http://www.cnblogs.com/dtdd/archive/2013/03/10/2952988.html 1,正则表达式简介 (1)什么是正则表达式:...

PHP基础-正则表达式

1:^  和  $ ^匹配开头^The;$匹配结尾abc$ 2:'*', '+',和 '?' * 表示出现0次或1次或多次 相当于{0,};+ 表示出现1次或多次  相当于{1,};? 表示出现0...

php基础8———正则表达式1

1,正则表达式是描述字符串排列组合的一种自定义的语法规则。

php基础9———正则表达式2

与正则相关的函数: 1
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)