亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    php 正則 不包含某字符串的正則表達(dá)式

    常見函數(shù) strstr($str, “abc”);
    正則匹配 preg_match(”/(abc)?/is”, $str);
    但是要匹配一個(gè)字符串中,不包含某字符串,用正則就比較麻煩了
    如果不用正則 !strstr($str, “abc”); 就可以解決問題了
    但是用正則呢,就只有這樣了,”/^((?!abc).)*$/is”
    //————————————————

    復(fù)制代碼 代碼如下:
    <?php
    $str = “dfadfadf765577abc55fd”;
    $pattern_url = “/^((?!abc).)*$/is”;
    if (preg_match($pattern_url, $str)){
    echo “不含有abc!”;
    }else{
    echo “含有abc!”;
    }
    ?>

    //————————————————
    結(jié)果為:false,含有abc!
    $str = “2b3c4d5c”;
    注意:[^(abc)] 這個(gè)語法是逐個(gè)檢查$str中的字符是否不在 a b c中,
    preg_match(”/[^(abc)]/s”, $str, $arr);
    其中字符 2 就不在 a b c 中,所以$arr返回值為2;
    同時(shí)匹配,包含字符串 “abc”,而且不包含字符串 “xyz”
    “/(abc)[^((?!xyz).)*$]/s”

    以下是補(bǔ)充:

    判斷一個(gè)字符串中是否含有另一字符串,有很多方法,如下:

    1. 常見函數(shù)

    strstr($str, “abc”);

    2. 正則匹配

    preg_match(“/(abc)/is”, $str);

    但是要匹配一個(gè)字符串中,不包含某字符串,用正則就比較麻煩了。
    1. 如果不用正則如下就可以解決問題

    !strstr($str, “abc”);

    2. 但是用正則呢,就只有這樣了

    preg_match(“/^((?!abc).)*$/is”, $str);

    完整代碼示例

    復(fù)制代碼 代碼如下:
    $str = “dfadfadf765577abc55fd”;
    $pattern_url = “/^((?!abc).)*$/is”;
    if (preg_match($pattern_url, $str))
    {
    echo “不含有abc!”;
    }
    else
    {
    echo “含有abc!”;
    }

    結(jié)果為:false,含有abc!

    同時(shí)匹配,包含字符串 “abc”,而且不包含字符串 “xyz”的正則表達(dá)式:

    preg_match(“/(abc)[^((?!xyz).)*$]/is”, $str);

    該方法有效,本人使用方法如下:

        (?:(?!</div>).|n)*? //匹配不含</div>的一個(gè)字符串

    但最終使用中結(jié)果是發(fā)現(xiàn),該方法效率極其低下,在處理非常短文字(要匹配該正則式的相同部分的有十幾個(gè)字,或者最多幾十個(gè))時(shí)間可以考慮使用,但當(dāng)用于大篇幅文章解析或多處需要改種匹配時(shí)間應(yīng)不使用,考慮用其他方法替代(如:先解析出要匹配該段正則式的文字,然后驗(yàn)證其中是否存在某段文字),正則表達(dá)式對(duì)于匹配不含特定字符串的文字段時(shí)并不是非常有效的方法.

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)