详解 正则表达式

简介: 详解 正则表达式

文章目录


一、概念

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


二、作用

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

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

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

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


三、语法规则

3.1定义规则

3.2符号简介

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

普通字符如下:

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

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

元字符:

是具有特殊意义的符号

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

匹配的方法:

preg_match(r e g , reg,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)?”可以匹配“does”或“does”中的“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”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”

3.4.8{n,m}

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

“o{1,3}”将匹配“fooooood”中的前三个o。“o{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禁止贪婪模式案例

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

我们让它尽可能少的匹配


相关文章
|
6月前
常用正则表达式 (必备)
常用正则表达式 (必备)
|
6月前
|
测试技术 数据安全/隐私保护 C++
正则表达式
正则表达式
48 0
|
新能源 Java Linux
你必须掌握的常用正则表达式大全
你必须掌握的常用正则表达式大全
1513 1
你必须掌握的常用正则表达式大全
|
数据采集 机器学习/深度学习 移动开发
我学会了,正则表达式
爬虫是**非常的**的强大,相信不少朋友都有所耳闻,它帮助我们更快地“获得”我们所要关键数据。那么,它怎么知道我们要需要什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。
104 0
我学会了,正则表达式
|
C#
正则表达式01
正则表达式01
172 0
正则表达式01
|
移动开发
【小技巧】正则表达式
正则表达式小技巧 1 空行替换 ^\r\n
517 0
|
JavaScript 前端开发 索引