正则表达式学习

原创 2015年11月21日 09:40:42
正则表达式学习

<?php
    header('Content-type:text/html;charset=utf-8');

    //前导表示前面一个字符串

    //位置
    //+ 至少一个
    //* 0 或者多个
    // ? 0 或一个
    //.任意一个字符
    // .*前导任意字符,0个或多个
    //{3} ,前导必须3个
    // | 条件选择符
    //^开始 $结束

    //[],里的面任意一个即可。
    //[a-z]表示26个字母中,随便一个
    //[^abc]除了abc
    //()分组 (?:)不获取分组 (?=)限定也是不获取分组 |必须被分组()包含起来

    //元字符
    //\w   代表[a-zA-Z0-9_]
    //\d       [0-9]
    //\D       [^0-9]
    // \s 空白字符
    //\b表示到达单词边界 ,边界可以理解为空格


    //修饰符

    //i :   不区分大小写
    //m :  匹配首尾的时候,如果遇到换行, 也应该承认是结尾,只对 ^ $有作用
    //x:    忽略掉规则模式中的空白
    //A:    表示必须从头开始
    //s:    将多行视为一行

/*
    $model = "/ph p/xmA"; //规则模式
    $string = "this is php\n,  good";

    if(preg_match($model, $string)){
        echo "匹配";
    }else{
        echo '不匹配';
    }

    搜索数组中的相匹配的字符串
    preg_grep()函数

    $language = array('python','ruby','php','asp','jsp');

    找出最流行的3p语言

    print_r(preg_grep('/p$/', $language,PREG_GREP_INVERT));

    python 蟒蛇语言.
    找出以p开头的
    print_r(preg_grep('/^p/', $language));

    搜索模式 ,返回真假;

    echo preg_match('/php[0-5]/','php6'); //匹配一次


    //匹配电子邮件
    $pattern = '/([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})/';
    $mail = 'yc60.com@-gmail.com';
    if(preg_match($pattern, $mail)){
        echo "电子邮件合法";
    }else{
        echo '电子邮件不合法';
    }



  //匹配全局

    preg_match_all('/php[1-5]/', 'php1saddsphp2sffphp3', $matches);

    print_r($matches);

    preg_match_all('/<[a-zA-Z]+>.*<//>|<[a-zA-Z]+/>/', 'php1saddsphp2sffphp3', $matches);
    print_r($matches);

    preg_match_all('/php[1-5]/', 'php1saddsphp2sffphp3', $matches);

    print_r($matches);





 // $pattern = '/([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})/';
 //    $mail = 'yc60.com@-gmail.com';
 //    if(preg_match($pattern, $mail,$matches)){
 //        echo "电子邮件合法";
 //        print_r($matches);
 //    }else{
 //        echo '电子邮件不合法';
 //    }

    //匹配文件名。

    // $mode = '/\.(jpg|gif|png)$/';
    // $file = 'ddwsffdfqd.gif.png';
    // if(preg_match($mode, $file,$matches)){
    //     print_r($matches);
    // }else{
    //     echo "不成功";
    // }

    //取出扩展名
    $mode = '/^[a-zA-Z0-9_\.]+\.([a-z0-9A-Z]+)$/';
    $file = 'ddwsffdfqd.gif.png.zip';
    if(preg_match($mode, $file,$matches)){
        print_r($matches);
    }else{
        echo "不成功";
    }

    //贪婪和分组获取的案例,ubb;

    $string = 'This is a [b]php5[/b], This is a [b]php6[/b]';
    $mode = '/\[b\](.*)\[\/b\]/U';
    $replace = '<strong>$1</strong>';
    echo preg_replace($mode, $replace, $string);
    echo $string;

     $string = '我是被index.php 导入的{$name}';
    $mode = '/\{\$(\w+)\}/';
    $replace = '<strong>$1</strong>';
    echo preg_replace($mode, $replace, $string);
    // echo $string;


   $str = '{foreach $array(key, value)}';
   $patternForeach = '/\{foreach\s+\$(\w+)\s*\((\w+)\s*,\s*(\w+)\)\}/';
   preg_match($patternForeach, $str,$matches);
   print_r($matches);

    $str = '{include "test.php"}';

   $pattern = '/\{include\s+["\'](.*)["\']\}/';
   preg_match($pattern, $str,$matches);
   print_r($matches);

*/
$pattern = '/.*/xs';
$str = "cdcds\nabc";
preg_match($pattern, $str,$matches);

print_r($matches);

相关文章推荐

学习正则表达式-Michael+Fitzgerald.pdf

  • 2017年07月25日 09:48
  • 3.15MB
  • 下载

re2正则表达式引擎学习(三)

prog.h 和 prog.cc定义了几种基本的数据结构: Bitmap(用bit位来标记某个元素的值),主要用于bytemap字符到字符集合的计算,划分字符区间:[00-ff],[61-61],[...

正则表达式学习

  • 2015年10月13日 16:45
  • 61KB
  • 下载

正则表达式学习笔记

  • 2015年03月17日 15:26
  • 14KB
  • 下载

c++11 学习及测试(emplace_back实现方式 数学分布 正则表达式)

可变长度参数列表,参数原始类型转发(emplace_back实现方式) #include #include #include #include using namespace std; t...

正则表达式学习笔记

  • 2013年04月30日 17:18
  • 47KB
  • 下载

正则表达式基础篇-学习

  • 2010年09月25日 14:21
  • 32KB
  • 下载

shell脚本学习:快速理解正则表达式之grep篇

shell脚本是Linux的核心之一,而正则表达式是shell脚本的核心之一,理解正则表达式可以快速匹配需要查抄的文本,对以后的shell脚本编程打下一个坚实的基础。    接触正则表达式一般从gre...
  • deansrk
  • deansrk
  • 2011年07月23日 23:04
  • 11650

Boost库学习之正则表达式

  • 2015年12月29日 14:41
  • 131KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正则表达式学习
举报原因:
原因补充:

(最多只允许输入30个字)