美文网首页
PHP-正则表达式整理

PHP-正则表达式整理

作者: AGEGG | 来源:发表于2019-03-16 15:44 被阅读0次

1.PHP正则表达式函数

preg_math($patern,$subject,[array & $matches])//匹配一次
preg_math_all($patern,$subject,array & $matches)//匹配多次
return 匹配到结果的次数
preg_replace($pattern,$replacement,$subject)//发生替换和未发生替换都保留
preg_filter($pattern,$replacement,$subject)//保留发生替换的字符串
preg_grep($pattern,$array $input)//preg_grep函数只会去做匹配的操作,不做替换
阉割版preg_filter
preg_split($patern,$subject)
//类似explode(),以$patern作为分割点,分割$subject
preg_quote($str)//转义正则运算符$str
正则运算符
.\+*?[^]$(){}=!<>|:-
preg_math 表单验证
preg_replace 非法词语过滤

2.正则表达式基本语法

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

2.1界定符

表示一个正则表达式的开始和结束
$pattern = '/[0-9]/';
这几种都可以: /[0-9]/ #[0-9]# {[0-9]} 推荐// ##

推荐工具regexpal

2.2原子

可见原子:Unicode编码表中键盘输出后肉眼可见的字符
如:标点
英文字母数字
汉字其他语言文字
数理化公式等

不可见原子
换行符\n
回车\r
制表符\t
空格

文字建议转化为Unicode编码来匹配
匹配正则表达式运算符前加 \ 来转义

2.3元字符

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

原子的集合
. 除换行符之外的任意字符
\d 任意一个十进制数字[0-9]
\D 任意一个非十进制数字即[^0-9]
\s 任意一个不可见原子(空格、换行符、换页符、回车符、字表符)即[\f\n\t\v]
\S 任意一个可见原子即[^\f\n\t\v]
\w 任意一个数字、字母或下划线即[0-9a-zA-Z_]
\W 任意个非数字、字母或下划线即[^0-9a-zA-Z_]

3.量词

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

  •       匹配0次、1次或者多次其之前的原子,即{0,}
    
  •       匹配1次或者多次其之前的原子,即{1,}
    

? 匹配0次或者1次其之前的原子,即{0,1}

[a-z]{2}//小写字母连续出现2次
\w{4}//数字、字母或下划线连续出现4次

4.边界控制

^匹配字符串开始的位置
$匹配字符串结束的位置
()匹配其中的整体为一个原子

5.模式单元

(D|d)ung~
匹配出 Duang~duang~

6.修正模式

贪婪匹配:匹配结果存在歧义时取其长
懒惰匹配:匹配结果存在歧义的取其短

//默认贪婪模式,   //后加U为懒惰模式
$pattern = '/agegg.+123U/';
$subject = 'i am agegg__123123123';
$matches = array();
preg_math($pattern,$subject,$matches);
show($matches);

function show($var=null){
    if(empty($var)) {
        echo 'null';
    } elseif(is_array($var)||is_object($var)){
        echo '<pre>';
        print_r($var);
        echo '</pre>';
    } else {
        echo $var;
    }
}

常见修正模式
U 懒惰匹配
i 忽略英文字母大小写
x 忽略空白
s 让元字符' . '匹配包括换行符在内的所有字符
e

EX

//非空 
.+
//保留两位数字浮点数
\d+|.\d{2}$
//手机号
1(3|5|7|8|4)\d{9}
//email地址
^\w+(\.\w+)*@\w+(\.\w+)+$
//URL地址
^(https?://)(\w+\.)+[a-zA-Z]+$

相关文章

  • PHP-正则表达式整理

    1.PHP正则表达式函数 2.正则表达式基本语法 界定符,原子,量词,边界控制,模式单元 2.1界定符 表示一个正...

  • PHP-正则表达式

    PHP中内含两种库的正则表达式,这里我用的是perl的。 正则表达式的组成 主要由“定界符+模式+定界符”组成模式...

  • PHP-正则表达式

    正则表达式的作用:分割、查找、匹配、替换字符串分隔符:正斜线(/)、hash符号(#)以及取反符号(~)通用原子:...

  • 第3章 PHP变量

    PHP-什么是变量 变量是用于存储值的 PHP-如何定义变量 定义变量就是向服务器的内存(服务器的内存,我们可以当...

  • js常用正则表达式

    对常用的js正则表达式进行整理,归档!!! 什么是正则表达式?它有什么作用? 正则表达式(regular expr...

  • idea代码格式对齐

    setting->Editor->Code Style->PHP->wrapping and braces Ass...

  • php 各扩展安装

    http://www.php.net/distributions/php-$version.tar.gz bcmath

  • 正则表达式高级

    正则表达式高级——《精通正则表达式》+Java/Go/Python官方文档+多年经验+实验结果知识整理 [TOC]...

  • 正则表达式

    最近在看jquery的源码,里面包含了很多正则表达式,特意抽时间来整理下正则表达式相关知识。 简介 正则表达式是一...

  • iOS正则表达式各种类型校验

    朋友需要一些正则表达式使用,这边现整理一些项目中会遇到的正则表达式吧,目前整理的是:1)手机号检验2)密码校验3)...

网友评论

      本文标题:PHP-正则表达式整理

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