美文网首页
正则表达式

正则表达式

作者: 七百年前 | 来源:发表于2018-05-19 15:55 被阅读26次

1.正则表达式是一种字符串匹配搜索工具

2 正则表达式规则

  • php函数

      preg_match 和 preg_match_all的区别<br>
      用法一致;
      preg_match :只能匹配到一次,返回0或者1
      preg_match_all : 全局匹配,返回 0,1,2...取决于匹配的数据
      参数:$pattern : 正则表达式
      
      preg_replace()和preg_filter()===>将匹配到的数值进行替换,可以使用数组替换
      $pattern=>匹配规则(str or arr) $replacement=>替换内容(str or arr) $subject=>目标对象(str or arr) 
      preg_replace($pattern,$replacement,$subject)
      ***当$pattern 和$replacement 为str or arr  以上两个函数的返回结果是一样的
      ***只有当$subject 为 arr时,结果不同 preg_filter会将没有匹配的$subject的数组内容过滤掉,只剩下匹配了的,而preg_replace 会将所有的结果返回  
      preg_filter($pattern,$replacement,$subject)
      
      preg_grep() 相当于阉割版的preg_filter,只匹配不替换
      
      1.preg_split($pattern,$subject)这个函数和explode()相似
      2. $string="这是一个,爱好编程的大牛";
        var_dump(  explode(',',$string) )-->打印的是一个数组
      3.把$pattern类比于这个',',就明白了!!
    
      preg_quote($str);
      将$str中的正则运算符用 \ 转义
      as: $str = '123{af}33[dff]';
      $str = preg_quote($str);   =>结果为: 123\{af\}33\[dff\]
    
  • 正则表达式基础语法

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

1.界定符 表示一个正则表达式的开始和结束
/[0-9]/ 或者 #[0-9]# 或者 {[0-9]}

2.正则表达式实时调试工具
regexpal

3.原子:正则表达式中的最小匹配单位,通常它只是Unicode编码表中的某一个字符。原子分为2种,可见和不可见。
可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
标点 ; " _ ? .等等
英文字母数字 a-z,A-Z,0-9
汉字、日文、阿拉伯文等其他语言文字
∑,∈,∮,≌等数理化公式符号
其他可见字符
不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
换行符 \n
回车\r
制表符 \t
空格
其他不可见符号

4.原子匹配规则
[] -> 匹配出现在[]中的任意一个原子
| -> 或运算,匹配|符号左右两边的任意一个
[^ ] ->首先这里^必须和[紧挨着,才表示匹配除了[]里面任意原子的字符
[ ^ ]->如果不挨着,就只表示匹配^这种字符了

5.原子集合:
.  匹配除换行字符外的任意字符,即[^\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_]

6.正则表达式->量词(在目标字符串中查找某个原子"连续"出现多少次):
{n}   表示其前面的原子恰好出现n次
{n,}  表示前面的原子最少出现n次
{n,m} 表示其前面的原子最少出现n次,最多出现m次
*     匹配0次、1次或多次其之前的原子,即{0,}
+     匹配1次或多次其之前的原子,即{1,}
?     匹配0次或1次期之前的原子,即{0,1}
eg:
5{3} -> 原子5连续出现3次的就匹配
[a-zA-Z]{3} -> 

7.常见的修正模式修正符:
U 懒惰匹配 
i 忽略英文字母大小写 //如:"/abc/i"可以与abc或aBC或ABc等匹配
g 全局匹配
m 将字符串视为多行
x 忽略空白(空格和tab制表符)
s 让元字符 . 匹配包括换行符在内的所有字符
//模式为:$mode="/pr.y/";
//要匹配字符串为:$str="pr\ny";
//两者不可匹配; . 是除了换行以外的字符可匹配;
//修改下模式为:$mode="/pr.y/s";
//其中修正符s将\n视为普通字符,即不是换行;
//最后两者可以匹配;
A 强制从目标字符串开头匹配
//$mode="/abc/A";
//可以与$str="abcsdfi"匹配,
//不可以与$str2="sdsdabc"匹配;
//因为$str2不是以abc开头;
D 如果使用$限制结尾字符,则不允许结尾有换行;
//模式为:$mode="/abc$/";
//可以与最后有换行的$str="adshabc\n"匹配;
//元子符$会忽略最后的换行\n;
//如果模式为:$mode="/abc/D",
//则不能与$str="adshabc\n"匹配,
//修正符D限制其不可有换行;必需以abc结尾;
e 配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;
U:懒惰匹配
u:贪婪匹配
i:忽略英文字母大小写
x:忽略空白(回车,空格等)
s:让元字符"."匹配包括换行在内的所有字符
e:
$pattern = '/imooc.+123/U';//'前的U代表修正模式是懒惰模式,如果没有U默认为贪婪模式

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

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