正则表达式

一、概念

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

二、作用

实际当中主要用于下面几个方面:

1、注册页面判断用户输入的内容是否符合验证规则

2、从整体字符串中看是否包含指定的字符串

3、找到符合规则的字符串进行替换

三、语法规则

3.1定义规则

3.2符号简介

正则表达式可以有普通符号和元字符组成。

 

普通字符如下:

‘/a/’代表你就要匹配字符a

‘/a7/’代表你就要匹配字符a7

 

元字符:

是具有特殊意义的符号

‘/\d/’ 代表要找寻数字

 

匹配的方法:

preg_match($reg,$str,[$arr]);

$reg就是自己定义的正则表达式

$str是自己要查询的字符串

$arr是匹配到的结果

下面是各种符号的用法:http://tool.oschina.net/uploads/apidocs/jquery/regexp.html

3.3preg_match用法详解

preg_match()只要找到一次符合正则表达式的结果就终止了,不会再往下匹配

preg_match_all()是匹配一次成功以后不会终止,会一直匹配到完

\d和[0-9]是一个意思

3.4详解元字符

3.4.1  \d和[0-9]

代表数字 参照上面

3.4.2  \D和[^0-9]

\D代表非数字和[^0-9]是一个意思

^在中括号中代表非

3.4.3^和$

^如果直接放在定界符前面代表以。。。开头

$代表以。。。。结尾

3.4.4*代表出现0次或者多次

zo*能匹配z以及zoo*等价于{0,}

3.4.5+代表出现1次或者多次

zo+能匹配zo以及zoo,但不能匹配z+等价于{1,}

3.4.5?代表出现0次或者1次

do(es)?可以匹配doesdoes中的do?等价于{0,1}

3.4.6{n}

{n}代表固定出现n次

o{2}不能匹配Bob中的o,但是能匹配food中的两个o

3.4.7{n,}

{n,}代表最少出现n次,多者不限

o{2,}不能匹配Bob中的o,但能匹配foooood中的所有oo{1,}等价于o+o{0,}则等价于o*

3.4.8{n,m}

{n,m}代表最少出现n次,最多出现m次

 

o{1,3}将匹配fooooood中的前三个oo{0,1}等价于o?。请注意在逗号和两个数之间不能有空格

3.4.9点号(.)

表示匹配除了\n(换行符以外的任意单个字符)

 

如果要表示真正的点号必须用\.

 

3.5.0 x|y

竖线代表是或者的意思

3.5.1 [xyz]

[xyz]点匹配xyz中的任意一个字符

 

3.5.2 [^xyz]

[^xyz]代表除了x y z以外的任意单个字符

 

 

 

3.5.3\b

\b代表匹配单词的边界

如果是如下什么也匹配不到

 

 

 

3.5.4\s

\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]

 

3.5练习

自己一个正则表达式,验证手机号11位 都是数字

3.5.1手机号验证案例

3.5.2用户名验证案例

用户名可以是数字 字母 下划线 中横线 个数是3-8位

3.5.3邮箱验证

四、高级运用

4.1反向引用

在正则表达式中出现小括号,是把小阔号中的内容当做子单元来使用

 

 

 

做一个练习:

比如:你的字符串$str='aaaahttp://www.baidu.comdddd';

然后你把里面的网址匹配出来替换成一个a标签

 

preg_replace(正则表达式,替换成什么,源字符串)

 

4.2贪婪模式

正则表达式里会尽可能多的匹配的元素

4.3禁止贪婪模式

让正则表达式尽可能少的匹配结果

 

4.4禁止贪婪模式案例

如果我们这样写会尽可能多的匹配

我们让它尽可能少的匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值