笔记:正则表达式
来源:互联网 发布:深圳海关 知乎 编辑:程序博客网 时间:2024/06/07 05:48
一个正则表达式需要4部分组成
.定界符: 多种都可以, 常用为 //
.原子: 最小的一个匹配单位(放在定界符中),在一个正则表达式中,至少要有一个原子
.元字符:元字符不能单独使用,修饰原子,是用来扩展原子功能的和限定功能(写在定界符号中)
.模式修正符:修正, 对模式(正则)修正, (写在定界符号外面,写在右边)
<?php
$str="aaaaaaaaaa3aaaaaa5aaaaaaa77777aaaa9aaa0aa<br>";
$reg="/\d/";
echo$str."<br>";
echopreg_replace($reg,"#",$str)."<br>";
print_r(preg_split($reg,$str));
echo"<br>";
if(preg_match_all($reg,$str,$arr)){
echo"正则表达式<b>{$reg}</b>和字符串<b>{$str}</b>匹配成功";
print_r($arr);
}else{
echo"没有匹配上<br>";
}
?>
原子:
1.打印字符(a-z A-Z 0-9 !@#$%^&*)和非打印字符
\转义字符
一:可以将有意义的字符转成没有意义的原子字符 (将有意义变成原子)
二:可以将没有意义的字符转成有意义的原子
三: a-z A-Z 0-9 _所有没有意义的字符, 加上转义也没有意义的, \@都是可加可不加的
- 所有的数字,所有的字,所有的空白,所有的字母,所有特殊符号
/d 代表任意一个数字 [0-9]
/D 代表任意一个非数字 [^0-9]
/w 代表任意一个字 a-z A-Z 0-9 _ [a-zA-Z0-9_]
/W 代表任意一个非字 除了 a-z A-Z 0-9 _之外的所有字符 [^a-zA-Z0-9_]
/s 代表空白 [\t\n\f\v\r]
/S 代表非空白 [^\t\n\f\v\r]
- 自定义原子表
- [13579]
- [^a-zA-Z] 所有的非字母
- 从哪到哪区间范围
^ 除列表中的
- 点 " . "能代表所有
原子是正则表达式的最基本的组成单元,而且在每个模式中最少要包含一个原子.原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类
- 普通字符作为原子:如 a-z A-Z 0-9等
- 一些特殊字符和转义后元字符作为原子:
- 所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如 : \" \' \* \+ \? \.等
- 一些非打印字符作为原子:如 : \f \n \r \t \v \cx
- 使用"通用字符类型"作为原子: \d \D \w \W \s \S.
- 自定义原子表([])作为原子:如: '/[apj]sp/' '/[^apj]sp/'
元字符:
不能在正则表达式中单独使用,用来修饰原子的.
" * "用来修饰其前面的原子可以出现0个1个或多个(任意次)
" + "用来修饰其前面的原子可以出现1次或多次,不能没有至少要出现一次
" ? "用来修饰其前面的原子可以出现0次或1次
" {} " {m} m = 3用来修饰其前面的原子只能出现 m 次,多一次和少一次都不可以
{n,m} {2,5}用来修饰其前面的原子出现个数在n到m之间,包括n和m
{n,} {2,}用来修饰其前面的原子可以出现至少2次
{,m} {,5}不可以
" | "是 或的关系,表示它两边的原子,只要有一个出现就可以, 但是, |优先级是最低的.
" ^ "和" \A " 表示必须以什么开始,这个必须写在正则表达式的前面
" $ "或" \Z " 表示必须以什么结束,这个必须写在正则表达式的最后面
" \b "单词边界
" \B "不是单词边界
" () "第一个作用: 改变优先级别
第二个作用: 将小原子变成大原子
第三个作用: 子模式,整个表达式是一个大的模式, 小括号中是每个独立的子模式
第四个作用: 反向引用 在括号里加 ?: 不用子模式 : (?:)
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式笔记等
- 正则表达式学习笔记
- 正则表达式资料笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 学习正则表达式笔记
- 正则表达式学习笔记
- 学习正则表达式笔记
- PHP开发网站第二步:关联并配置PHP与Apache2.4
- nginx 安装
- 线性表顺序实现和链式实现区别
- POJ 2415 Hike on a Graph(bfs)
- 从事技术开发以来的一些个人经验
- 笔记:正则表达式
- 栈的基本实现
- Flask Web开发 第2章
- Android图片压缩--缩略图
- 线性表
- 设计模式(五) 原型模式
- 树的定义与基本术语
- 关于上一篇鼠标移到按钮时的“按下”效果的三种方法
- Zookeeper的选举