曲径通幽论坛

标题: POSIX 扩展正则表达式函数:ereg() -- 以区分大小写方式搜索文本 [打印本页]

作者: beyes    时间: 2011-8-25 17:22
标题: POSIX 扩展正则表达式函数:ereg() -- 以区分大小写方式搜索文本
ereg() 函数是符合 POSIX 扩展的正则表达式函数之一 (POSIX 扩展系列函数以 ereg_ 为前缀),其原型为:
[PHP] 纯文本查看 复制代码
int ereg ( string $pattern , string $string [, array &$regs ] )

该函数在 string 中以区分大小写的方式搜索 pattern ,如果找到则返回 TRUE,否则返回 FALSE 。

示例代码:
[PHP] 纯文本查看 复制代码

<?php

        $ourdomain = "Groad";

        if (ereg("([^a-z])", $ourdomain))
                echo "domain name must be all lowercase!";
        else
                echo "domain name is all lowercase!";
?>

运行输出:
domain name must be all lowercase!
上面例子中确定域名是否只包含小写字符。([^a-z]) 表示不匹配小写字母,所以一旦 ereg() 找到字符串种有大写字母,则返回 TRUE,因此会输出错误消息。

ereg() 还有一个可选参数 regs ,它包含一个数组,其中包括使用正则表达式中小括号分组的所有匹配表达式。如利用此数组,可以将 URL 分成几个部分,然后将这几个部分的匹配存储到 regs 数组中来,如下示例:
[PHP] 纯文本查看 复制代码
<?php
        $url = "http://www.groad.net";


        $parts = ereg("^(http://www)\.([[:alnum:]]+)\.([[:alnum:]]+)", $url, $regs);

        echo $regs[0];
        echo "<br />";
        echo $regs[1];
        echo "<br />";
        echo $regs[2];
        echo "<br />";
        echo $regs[3];
?>

运行输出:
http://www.groad.net
http://www
groad
net

注意:在 PHP 5.3.0 中该函数已经不建议使用。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2