這篇文章將為大家詳細(xì)講解有關(guān)php正則怎么不包含某字符串,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、金山網(wǎng)站維護(hù)、網(wǎng)站推廣。php正則不包含某字符串的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后通過正則表達(dá)式“ preg_match(”/[^(abc)]/s”, $str, $arr);”實(shí)現(xiàn)判斷不包含某字符串即可。
常見函數(shù) strstr($str, “abc”);
正則匹配 preg_match(”/(abc)?/is”, $str);
但是要匹配一個(gè)字符串中,不包含某字符串,用正則就比較麻煩了
如果不用正則 !strstr($str, “abc”); 就可以解決問題了
但是用正則呢,就只有這樣了,”/^((?!abc).)*$/is”
//------------------------------------------------ 代碼如下: //------------------------------------------------ 結(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);
完整代碼示例
代碼如下:
$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);
該方法有效,本人使用方法如下:
(?:(?!<\/p>).|\n)*? //匹配不含的一個(gè)字符串
但最終使用中結(jié)果是發(fā)現(xiàn),該方法效率極其低下,在處理非常短文字(要匹配該正則式的相同部分的有十幾個(gè)字,或者最多幾十個(gè))時(shí)間可以考慮使用,但當(dāng)用于大篇幅文章解析或多處需要改種匹配時(shí)間應(yīng)不使用,考慮用其他方法替代(如:先解析出要匹配該段正則式的文字,然后驗(yàn)證其中是否存在某段文字),正則表達(dá)式對于匹配不含特定字符串的文字段時(shí)并不是非常有效的方法.
關(guān)于php正則怎么不包含某字符串就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。