美文网首页
#php&正则表达式 简洁整理

#php&正则表达式 简洁整理

作者: Bill_Wang | 来源:发表于2016-08-04 16:09 被阅读54次

该系列我只写我的理解,非官方解释,如不够专业请见谅


正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!

基本语法

  • 定界符 /.../ 中间是正则表达式
  • 元字符
    • + 之前字符出现一次或多次
    • *之前字符出现零次或多次
    • ?之前字符出现零次或一次
    • \s单个空格,包括tab键或换行
    • \S单个空格之外的所有字符
    • \d0~9的数字
    • \w字母 数字或下划线字符
    • \W所有与\w不匹配的字符
    • .匹配所有换行符之外的字符
  • 定位符
    • ^以...开头
    • $以...结尾
    • \b出现在开头或结尾
    • \B出现在非开头结尾
  • 区间符 - 例如:/([a-z][A-Z][0-9])+/
  • 否定符[^] 例如:[^tes] 表示tes字符外所有
  • | 例如:/A|B|C/可以与"A","B","C"都匹配

php相关函数

  • preg_match判断字符串是否匹配
//preg_match("正则表达式","字符串")用于在字符串中查找匹配项
# ^ 开头 
# \w 字符数字下划线 
# () 组|[]允许出现其中任意一个字符|?
# ? 出现一次或不出现
# * 出现多次或不出现
# + 出现一次或不出现
# {} 条目出现的次数
# $ 结尾
# 语义:只能以字符数字下划线开头,后面的可以是_xxx或者.xxx组合 中间必须有@符号
# @后面类似@前的 但必须以为.xxx结尾,xxx必须2~3个字符,可以下划线
# 
$email = "987044391@qq.com";

print preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/",$email)?"匹配成功\n":"匹配失败\n";//匹配成功
  • preg_quote 在每个有正则表达式语法加入转移字符即\
//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\
 
$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$preg = "/" . preg_quote($word) . "/";
print $preg."\n";#/\*very\*/
print preg_replace ($preg,"<i>" . $word . "</i>",$textbody)."\n";//This book is <i>*very*<i> difficult to find.
  • preg_split 分割字符串
//preg_split("正则","字符串")分割字符串
$php = "+A++B++++C";
$field = preg_split("/\+{1,}/",$php);
foreach($field as $f){
    print $f." ";//A B C
}
print "\n";
  • preg_grep 与数组匹配后返回新数组
//preg_grep("正则","字符串") 与数组匹配后返回新数组
$array = ["perA","perB","perC","shD","ccE"];
$item = preg_grep("/^per/",$array);
print_r($item);
#Array
#(
#    [0] => perA
#    [1] => perB
#    [2] => perC
#)

 print "\n";
  • preg_replace 替换匹配字符串
//preg_replace("正则","替换内容","原字符串")    很重要,很常用
$a = "百度http://www.baidu.com/";  //给http开头的加上超链接
echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a")."\n";//百度<a href="http://www.baidu.com/">http://www.baidu.com/</a>

相关文章

  • #php&正则表达式 简洁整理

    该系列我只写我的理解,非官方解释,如不够专业请见谅 正则表达式是php中一个非常重要的知识点,通常用来查找和替换字...

  • 自学Python:re正则表达式入门

    正则表达式是用来简洁表达一组字符串的表达式。 使用正则表达式的优势是简洁,一行胜千言。 正则表达式是用来简洁表达一...

  • 正则表达式的概念和基本语法

    正则表达式(regular expression):正则表达式是用来简洁的表达一组字符串的表达式。 优势:简洁(一...

  • Re(正则表达式)

    在线正则表达式测试 正则表达式 regular expression regex RE正则表达式是用来简洁表达一组...

  • Python中的正则表达式

    概念:正则表达式是用来简洁表达一组字符串的表达式,是一种针对字符串表达“简洁”和“特征”思想的工具。正则表达式可以...

  • 单元七·RE库入门

    正则表达式的概念 正则表达式(Regular expression, redex, RE)简洁表达一组字符串的表...

  • 正则表达式

    正则表达式 (regular expression,regex,RE) 正则表达式是用来简洁表达一组字符串的表达式...

  • Python爬虫之正则表达式入门

    正则表达式是用来简洁表达一组字符串的表达式 使用正则表达式的优势是什么?简洁一行胜千言 一行就是特征(模式) 无穷...

  • 正则表达式

    本文主要内容:正则表达式的概念,语法,常用正则表达式和python中的re库。 正则表达式是用来简洁表达一组字符串...

  • 简洁的UDP协议通讯 | PHP&&C | so

    前言今天在公司玩了一下UDP协议通讯,因为公司对服务器的安全性要求很高,没有 http协议,要通信那就来tcp、u...

网友评论

      本文标题:#php&正则表达式 简洁整理

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