博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 正则表达式
阅读量:5095 次
发布时间:2019-06-13

本文共 4201 字,大约阅读时间需要 14 分钟。

  • 基础
  1. 开始符和结束符:/;
  2. 特殊字符 包括(/、\);
  3. 或用(|)或者[ ]表示。区别:(I)可匹配多个字符,如(ansnj|cmxc)。[]可匹配单个字符,如[a-z0-9],表示匹配a到z中或者0到9中的任意一个字符。
  4. 非用^表示,一般和[]连用,如[^a-b]表示匹配除了a到z之外的任意一个字符,[abc^]则表示匹配a|b|c|^;
  5. 表示重复次数{n,m} , * , ? , + 。如[a-b]{1,2}表示匹配到aa|ab|ba|bb四种可能,*表示重复次数为0次或者多次,?表示0或一次,+表示一次货多次;
  6. .表示除换行符外的任意字符
  7. \f  匹配一个换页符。等价于 \x0c 和 \cL。
    \n  匹配一个换行符。等价于 \x0a 和 \cJ。
    \r  匹配一个回车符。等价于 \x0d 和 \cM。
    \s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
    \S  匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
    \t  匹配一个制表符。等价于 \x09 和 \cI。
    \v  匹配一个垂直制表符。等价于 \x0b 和 \cK。
  • 注意
  1. /和\在正则表达式中都需要用\转义。
  2. 如果要匹配以上描述的任意字符都需要用\转义,如要匹配一个+号,就需要写为\+;
  3. \需要与以上描述的任意字符连用都需要转义,如/\\\[h-i]/则匹配的字符串为\h或者\i;
  4. [^] 这样的连用是错误,若想匹配^,则用\^表示,但[a^]则可以表示a或者^中的其中一个字符。
  5. 贪婪匹配:/.*+/ 使正则表达式尽可能的匹配多的字符

    惰性匹配:/.*?/ 使正则表达式尽可能少的匹配字符
    元字符包含 [] () ^ $ ~ . ? + * - \ | {} 需要匹配本体时需要转义(加\)
    常用的转义字母 : \d (0-9) \D (任意非十进制字符) \w (任意字母和数字和下划线) \W(任意非字母和非数字和非下划线) \n(换行符) \r(回车) \t(水平制表符) \f (换页)

  • 例子分析
/*   * 邮件匹配 分三部分 @前为一个整体 @后到.为一个整体 .之后为一个整体 * part1 : 至少有一个字母或数字或下划线(即 \w) 由 -或者.或者+ 拼接的 一或多部分 可得正则为 \w+([\.\-\+]\w+)* * 如 :123-11+33_.aa * part2 : 与part1相似,但没有+号的连接符 \w+([\.\-]\w+)* * 如:123-11.cn * part3 :与part2一致 \w+([\.\-]\w+)* * 如: com.cn * *//* $pattern = '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/';$subject = '925224611@qq.com';$subject = '192-168-1-0-1@qq.com';$subject = '192*168+1.0-1@qq.com';$res = preg_match($pattern, $subject , $arr_data);var_dump($res);echo '
'; print_r($arr_data);  */$pattern = '/^[\w-]$/';$subject = '925224611@qq.com';$subject = '192-168-1-0-1@qq.com';$subject = '192*168+1.0-1@qq.com';$subject = '-';$res = preg_match($pattern, $subject , $arr_data);var_dump($res);echo '
'; print_r($arr_data);/*  * 网站地址由三部分组成: * part1 : 是一个固定的部分 http(s)?:\/\/ * part2 : 是域名部分(至少两级域名)  ([\w\-]+\.)+[\w\-]+ * part3 : 其他路径和参数部分 (\/[\w\-\/\?=&%]*)? *  */$pattern = '/^http(s)?:\/\/([\w\-]+\.)+[\w\-]+(\/[\w\-\.\/\?%&=]*)?$/';$subject = 'http://192.168.0.1/erp/index.php/Home/WlZj/tableList.html?&draw=1&columns%5B0%5D%5Bdata%5D=&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=hh&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=quarter&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=aunit&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=confnum&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=false&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=status&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=false&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=false&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=remark&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=false&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=false&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=1&order%5B0%5D%5Bdir%5D=desc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1560409514623';//$subject = 'https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6';//$path = '/^http(s)?:\/\/([\w\-]\.)+([\w\-])+(\/[\w\.\/\?\-=&%]*)?$/';$res = preg_match($pattern, $subject , $arr_data);var_dump($res);echo '
'; print_r($arr_data);

 

转载于:https://www.cnblogs.com/Acsii/p/8205747.html

你可能感兴趣的文章
Struts2默认Action
查看>>
API详解
查看>>
Django--ORM--模型增删改查--备忘
查看>>
转: 关于CAS cpu锁的技术说明。
查看>>
java中转义字符和路径符
查看>>
redux,react-redux、redux-thunk、redux-logger、redux-promise实例
查看>>
android开发的一点小总结,小杂言,小记录
查看>>
洛谷P3688/uoj#291. [ZJOI2017]树状数组
查看>>
Visio2013 64安装和激活
查看>>
python+webdriver 模拟用户交互工具
查看>>
linuxlinux0.11源码学习——bootsect.s学习
查看>>
获取没有key值的数据,用循环器
查看>>
转发:招聘一个靠谱的 iOS
查看>>
20165339 预备作业3 Linux安装及学习
查看>>
Mysql 根据时间戳按年月日分组统计
查看>>
Activity传递参数——传递简单数据
查看>>
Top Android App使用的组件
查看>>
Debounce 和 Throttle 的原理及实现---防止频繁触发某事件
查看>>
leetcode [309]Best Time to Buy and Sell Stock with Cooldown
查看>>
在C#中,前面不足位数要补零的Tips
查看>>