精华内容
下载资源
问答
  • preg_match

    2019-01-17 10:57:00
    preg_match('/admin.php/',$baseUrl)) { $this->redirect('/admin.php'.$baseUrl); } 很实用的php自带方法。 <?php //模式分隔符后的"i"标记这是一个大小写不敏感的搜索 if (preg_match("/php/i...
    $baseUrl = request()->baseUrl();
    if (!preg_match('/admin.php/',$baseUrl)) {
        $this->redirect('/admin.php'.$baseUrl);
    }

    很实用的php自带方法。

    <?php
    //模式分隔符后的"i"标记这是一个大小写不敏感的搜索
    if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
        echo "A match was found.";
    } else {
        echo "A match was not found.";
    }
    ?>

    转载于:https://www.cnblogs.com/jiqing9006/p/10281076.html

    展开全文
  • 本篇文章是对php中的preg_match函数与preg_match_all函数进行了详细的分析介绍,需要的朋友参考下
  • preg_match_all — 进行全局正则表达式匹配 说明 复制代码 代码如下:int preg_match_all ( string pattern, string subject, array matches [, int flags] ) 在 subject 中搜索所有与 pattern 给出的正则表达式匹配...
  • preg_match_all 函数:int preg_match_all ( string pattern, string subject, array matches [, int flags] )执行一个全局正则表达式匹配在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 ...
  • POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace) ,需要的朋友可以参考下。
  • var_dump( preg_match("/[\S\b]{2,32}/",'ج') ); echo '<hr>'; var_dump( preg_match("/[\S\b]{2,32}/",'中国') ); 是不行的 需要加一个参数u,按照uniode来读码 <?php var_dump( preg_match("/[\S\b]{2,32}/u...
  • preg_match_all — 进行全局正则表达式匹配说明int preg_match_all ( string pattern, string subject, array matches [, int flags] )在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags...

    preg_match_all — 进行全局正则表达式匹配

    说明

    int preg_match_all ( string pattern, string subject, array matches [, int flags] )

    在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。

    搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。

    特别注意PREG_PATTERN_ORDER 和PREG_SET_ORDER

    flags 可以是下列标记的组合(注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起来用没有意义):

    如果使用PREG_PATTERN_ORDER

    对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推。(即$matches[0] [0]为全部模式匹配中的每一项,$matches[0] [1]为全部模式匹配中的第二项,$matches[1] [0]为匹配每一个括号中的第一项,$matches[1] [0]为匹配每一个括号中的第二项)

    preg_match_all ("|]+>(.*)[^>]+>|U","example:

    this is a test
    ",$out, PREG_PATTERN_ORDER);

    print $out[0][0].", ".$out[0][1]."\n";

    print $out[1][0].", ".$out[1][1]."\n";

    ?>

    本例将输出:

    example: ,

    this is a test

    example: , this is a test

    因此,$out[0] 包含匹配整个模式的字符串,$out[1] 包含一对 HTML 标记之间的字符串。

    如果使用PREG_SET_ORDER

    对结果排序使 $matches[0] 为第一组匹配项的数组,$matches[1] 为第二组匹配项的数组,以此类推。(即$matches[0] [0]为第一组匹配项中完整匹配的字符串,$matches[0] [1]为第一组匹配中完整匹配第一个括号中的字符串)

    preg_match_all ("|]+>(.*)[^>]+>|U","example:

    this is a test
    ",$out, PREG_SET_ORDER);

    print $out[0][0].", ".$out[0][1]."\n";

    print $out[1][0].", ".$out[1][1]."\n";

    ?>

    本例将输出:

    example: , example:

    this is a test
    , this is a test

    本例中,$matches[0] 是第一组匹配结果,$matches[0][0] 包含匹配整个模式的文本,$matches[0][1] 包含匹配第一个子模式的文本,以此类推。同样,$matches[1] 是第二组匹配结果,等等。

    PREG_OFFSET_CAPTURE

    如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其在 subject 中的偏移量。本标记自 PHP 4.3.0 起可用。

    如果没有给出标记,则假定为 PREG_PATTERN_ORDER。

    返回整个模式匹配的次数(可能为零),如果出错返回 FALSE。

    例子 1. 从某文本中取得所有的电话号码

    preg_match_all ("/\(? (\d)? \)? (?(1) [\-\s] ) \d-\d/x","Call 555-1212 or 1-800-555-1212", $phones);

    ?>

    例子 2. 搜索匹配的 HTML 标记(greedy)

    // \\2 是一个逆向引用的例子,其在 PCRE 中的含义是

    // 必须匹配正则表达式本身中第二组括号内的内容,本例中

    // 就是 ([\w]+)。因为字符串在双引号中,所以需要

    // 多加一个反斜线。

    $html = "bold textclick me";

    preg_match_all ("/(]*>)(.*)()/", $html, $matches);

    for ($i=0; $i< count($matches[0]); $i++) {

    echo "matched: ".$matches[0][$i]."\n";

    echo "part 1: ".$matches[1][$i]."\n";

    echo "part 2: ".$matches[3][$i]."\n";

    echo "part 3: ".$matches[4][$i]."\n\n";

    }

    ?>

    本例将输出:

    matched: bold text

    part 1:

    part 2: bold text

    part 3:

    matched: click me

    part 1:

    part 2: click me

    part 3:

    展开全文
  • phpvar_dump( preg_match(“/[\S\b]{2,32}/”,’ج’) );echo ‘’;var_dump( preg_match(“/[\S\b]{2,32}/”,’中国’) ); 是不行的 需要加一个参数u,按照uniode来读码 代码如下:<?phpvar_dump( preg_match(...
  • preg_match和preg_match_all()

    千次阅读 2019-06-06 01:39:13
    preg_match—执行匹配正则表达式 preg_match(string$pattern,string$subject[,array&$matches[,int$flags= 0[,int$offset= 0]]] ) :int 参数 是否必须 说明 pattern 是 要搜索的模式 subject ...

    preg_match — 执行匹配正则表达式

    preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int

    参数是否必须说明
    pattern要搜索的模式
    subject输入字符串
    matches$matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
    flags如果传递PREG_OFFSET_CAPTURE,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。
    offset通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个位置开始搜索(单位是字节)。

    返回值:返回 pattern 的匹配次数,如果发生错误preg_match()返回 FALSE

    <?php
    $str = 'abcdabccd';
    preg_match('/(ab)(c+)/', $str, $matches);
    preg_match('/(ab)(c+)/', $str, $matches2,PREG_OFFSET_CAPTURE);
    preg_match('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE,1);
    var_dump($matches);
    var_dump($matches2);
    var_dump($matches3);

    preg_match_all — 执行一个全局正则表达式匹配 

    preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset= 0 ]]] ) : int

    参数是否必须说明
    pattern要搜索的模式,字符串形式。
    subject输入字符串。
    matches多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。
    flags

    (1)PREG_PATTERN_ORDER:结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

    (2)PREG_SET_ORDER:结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

    (3)PREG_OFFSET_CAPTURE:如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。 注意这会改变matches中的每一个匹配结果字符串元素,使其 成为一个第0个元素为匹配结果字符串,第1个元素为 匹配结果字符串在subject中的偏移量。

    offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

    返回值:返回完整匹配次数(可能是0),或者如果发生错误返回FALSE

    <?php
    $str = 'abcdabccd';
    preg_match_all('/(ab)(c+)/', $str, $matches);
    preg_match_all('/(ab)(c+)/', $str, $matches2,PREG_SET_ORDER);
    preg_match_all('/(ab)(c+)/', $str, $matches3,PREG_OFFSET_CAPTURE);
    var_dump($matches);
    var_dump($matches2);
    var_dump($matches3);

    展开全文
  • php使用preg_match_all匹配文章中的图片有时候我们需要使用php获取网页中的图片并保存下来,这里我们可以使用preg_match_all用来匹配图片地址,需要的码农可以参考下preg_match_all 函数:int preg_match_all ( ...

    php使用preg_match_all匹配文章中的图片

    有时候我们需要使用php获取网页中的图片并保存下来,这里我们可以使用preg_match_all用来匹配图片地址,需要的码农可以参考下

    preg_match_all 函数:

    int preg_match_all ( string pattern, string subject, array matches [, int flags] )执行一个全局正则表达式匹配

    在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。

    搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。

    flags 可以是下列标记的组合(注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起来用没有意义):

    PREG_PATTERN_ORDER  对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推!

    例子:

    <?php $con = file_get_contents("http://www.xxx.com/news/jb-1.html");$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";preg_match_all($pattern,$con,$match);print_r($match);?>

    结果:

    Array(

    [0] => Array(

    [0] => 码农教程[1] => 码农教程上线了2[2] => 875EA1C00E50B4542797E24FA6E7E1F2.jpg)

    [1] => Array(

    [0] => http://www.xxx.com/usr/themes/dddefault/images/logo.png

    [1] => http://www.xxx.com/usr/uploads/2012/09/531656480.jpg

    [2] => http://www.xxx.com/usr/uploads/2012/09/2647136297.jpg

    )

    )

    展开全文
  • php_match/preg_match_all 默认有字符串长度限制:52500(或许你的服务器环境是更长,或者更短),当字符串长度大于52500,只能匹配到52500数据,超出的部分会被系统自己截掉。项目中,用preg_match正则提取目标内容,...
  • php正则表达式中的函数我们之前为大家结果一个preg_match函数,相信大伙对此有所了解,那么php正则表达式中preg_match_all函数的具体使用是如何的呢?今天我们就带大家了解php正则表达式中preg_match_all函数的详解...
  • preg_match 与 preg_match_all 区别

    千次阅读 2018-11-29 10:31:39
    preg_match 只匹配一次,preg_match_all是全文匹配,即所有跟表达式一致的都找出来。 以下我们看案例   1、取出符号里的字符。preg_match_all("/(\w)+/","abc",$search);  ...
  • preg_match_all 函数:int preg_match_all ( string pattern, string subject, array matches [, int flags] )执行一个全局正则表达式匹配在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 ...
  • 案例一: 1 <?... ... 3 $str = 'abcdef123456';... 4 preg_match('/[a-z1-9]+/', $str, $res); 5 var_dump($res); 6 7 preg_match('/([a-z1-9])+/', $str, $res); 8 var_dump($res); 9 1...
  • 正则表达式几乎在所有编程语言里面都会用到,本实例介绍...preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用 preg_match_all() 函数。语法:preg_match (pattern , subject, matches...
  • preg_match_all函数具体说明大家可以查看PHP手册,本文运用 preg_match_all用于测试正则表达的效果。 实例代码: 复制代码 代码如下:$html = ‘”biuuu”>jb51.net</div><div id=”biuuu_2″>jb51.net2</div><div ...
  • 函数语法:【int preg_match(string $pattern ,string $subject)】。在php中preg_match 函数用于执行一个正则表达式匹配。(推荐教程:php图文教程)函数语法:int preg_match(string $pattern ,str...
  • 我试图在下面的程序中使用preg_match_all函数来查找所有主题与他们的标记,但我只得到一个匹配。我一直在为此奋斗了5个小时。有人能帮我弄清楚什么是错的吗?提前致谢。preg_match_all只返回一个匹配$semArray=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,111
精华内容 17,244
关键字:

preg_match