正则表达式学习笔记

作者: devbird | 来源:发表于2016-02-27 14:26 被阅读208次

一、正则表达式基本语法:####

*界定符
*原子
*元字符
*量词
*边界控制
*模式单元

1. 界定符######

<pre>
表示一个正则表达式的开始和结束。(如:/[0-9]/或#[0-9]#或{[0-9]})
一般使用/或#作为界定符,不建议用{}
</pre>

2. 原子######

<pre>
(1)可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
如:标点;"_?.等,英文字母数字a-z A-Z 0-9,其他可见字符等
(2)不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
如:换行符\n,回车\r,制表符\t,空格,其他不可见符号
</pre>

3. 元字符######

<pre>
(1)原子的筛选方式:
| 匹配两个或者多个分支选择;
[] 匹配方括号中的任意一个原子;
[^] 匹配除方括号中的原子之外的任意字符;

(2)原子的集合:
. 匹配除换行符之外的任意字符,即[^\n];
\d 匹配任意一个十进制数字,即[0-9];
\D 匹配任意一个非十进制数字,即[^0-9];
\s 匹配一个不可见原子,即[\f\n\r\t\v];
\S 匹配一个可见原子,即[^\f\n\r\t\v];
\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_];
\W 匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z_];
</pre>

4. 量词######

<pre>
{n} 表示其前面的原子恰好出现n次;
{n,} 表示其前面的原子最少出现n次;
{n,m} 表示其前面的原子最少出现n次,最多出现m次;

  • 匹配0次、1次或者多次其之前的原子,即{0,};
  • 匹配1次或者多次其之前的原子,即{1,};
    ? 匹配0次或者1次其之前的原子,即{0,1};
    </pre>
5. 边界控制######

<pre>
^ 匹配字符串开始的位置;
$ 匹配字符串结尾的位置;
</pre>

6. 模式单元######

<pre>
() 匹配其中的整体为一个原子;
</pre>

二、模式修正:####

1.懒惰匹配与贪婪匹配######

<pre>
(1) 贪婪匹配:匹配结果存在歧义时取其长(默认为贪婪模式)
(2) 懒惰匹配:匹配结果存在歧义时取其短(懒惰模式标识:U 即:只需要在正则表达式的末尾加上U 如:/so.+234/U)
</pre>

2.常见修正模式######

<pre>
U 懒惰匹配;
i 忽略英文字母大小写;
x 忽略空白;
s 让元字符'.'匹配包括换行符在内的所有字符;
e 配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;
</pre>

三、PHP中常用的正则表达式函数:####

1. preg_match()与preg_match_all()######

<pre>
preg_match($pattern,$subject,[array &matches])
第三个参数是传递引用,参数可选;
preg_match()只会在$subject中匹配一次;
return 匹配的次数(0次或1次)
preg_match_all($pattern,$subject,array &matches)
第三个参数是传递引用,参数必填;
preg_match_all()会把$subject中所有符合的匹配出来;
return 匹配的次数(0次或多次)
</pre>

2. preg_replace()与preg_filter()######

<pre>
preg_replace($pattern,$replacement,$subject)
return 返回被替换后的结果,(当为数组集时:不管替换部分和没有替换部分都会返回);
preg_filter($pattern,$replacement,$subject)
return 返回替换后的结果,(当为数组集时:只保留被替换过的,没有替换的部分不返回;)
</pre>

3. preg_grep()######

<pre>
preg_grep($pattern,array $input)
return 只返回被匹配到的结果集,没有匹配到的就过滤掉不返回
</pre>

4. preg_split()######

<pre>
preg_split($pattern,$subject)
return 用匹配到的结果去截取字符串,将截取后的结果返回;
</pre>

5. preg_quote()######

<pre>
preg_quote($str)
正则运算符转义,如: .\+*?[^]$(){}=!<>|:-
</pre>

相关文章

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • 正则表达式学习笔记

    正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...

  • Python学习随笔

    本笔记整理自中谷教育在线教育视频 学习笔记——正则表达式常用符号 这里学习过正则表达式后,简单做了一个爬虫程序,效...

  • Python ☞ day 11

    Python学习笔记之 正则表达式 re模块概述:Python自1.5以后增加了re的模块,提供了正则表达式模式...

  • python正则表达式学习拾遗

    本篇学习笔记参考re——正则表达式 所作,不明白之处可以参阅上述的官方文档。因为是个人学习笔记,所以并不会完全介绍...

  • 正则表达式

    python学习笔记-正则表达式 标签 : python 特殊符号和字符 re模块:核心函数和方法

  • 正则表达式学习笔记

    [TOC] 正则表达式学习笔记 1. cheatsheet 2. 介绍 2.1 character 有时我们希望m...

  • python爬虫day-13(正则表达式)

    个人学习笔记,方便自己查阅,仅供参考,欢迎交流 正则表达式 1.简单示例 开源中国提供的正则表达式测试网址:htt...

  • 笔记:正则表达式

    正则表达式基础部分笔记

  • 正则表达式

    正则表达式在开发中不会频繁使用,但是需要使用的时候就需要去查阅,这里做一下学习笔记 正则表达式的作用 匹配 分割 ...

网友评论

    本文标题:正则表达式学习笔记

    本文链接:https://www.haomeiwen.com/subject/xbpwkttx.html