详解 正则表达式

简介: 详解 正则表达式

文章目录


一、概念

正则表达式(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禁止贪婪模式案例

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

我们让它尽可能少的匹配


相关文章
|
4月前
|
数据安全/隐私保护
正则表达式小结
正则表达式小结
31 0
|
1月前
|
测试技术 数据安全/隐私保护 C++
正则表达式
正则表达式
25 0
|
1月前
|
JavaScript 前端开发 Java
正则表达式详细讲解
正则表达式详细讲解
正则表达式详细讲解
|
9月前
常用正则表达式
常用正则表达式
43 0
|
11月前
|
前端开发 数据安全/隐私保护 Windows
常用的20个正则表达式
常用的20个正则表达式
242 0
|
机器学习/深度学习 前端开发 JavaScript
一文掌握正则表达式
本文适合对正则不太熟悉,以及想掌握正则表达式的小伙伴阅读~
|
移动开发
【小技巧】正则表达式
正则表达式小技巧 1 空行替换 ^\r\n
496 0
|
前端开发 JavaScript Java
正则表达式总结
创建正则表达式 1.使用RegExp()构造函数来创建 RegExp()构造函数非常有用,特别是在需要动态创建正则表达式的时候,这种情况往往没办法通过写死在代码中的正则表达式直接量来实现。
1004 2
|
Perl 运维 Linux
漫谈正则表达式
一、概述 正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模式(规则)的文本。
942 0

热门文章

最新文章