常見函數 strstr($str, “abc”);
正則匹配 preg_match(”/(abc)?/is”, $str);
但是要匹配一個字符串中,不包含某字符串,用正則就比較麻煩了
如果不用正則 !strstr($str, “abc”); 就可以解決問題了
但是用正則呢,就只有這樣了,”/^((?!abc).)*$/is”
//------------------------------------------------
以下是補充:
判斷一個字符串中是否含有另一字符串,有很多方法,如下:
1. 常見函數
strstr($str, "abc");
2. 正則匹配
preg_match("/(abc)/is", $str);
但是要匹配一個字符串中,不包含某字符串,用正則就比較麻煩了。
1. 如果不用正則如下就可以解決問題
!strstr($str, "abc");
2. 但是用正則呢,就只有這樣了
preg_match("/^((?!abc).)*$/is", $str);
完整代碼示例
結果為:false,含有abc!
同時匹配,包含字符串 "abc",而且不包含字符串 "xyz"的正則表達式:
preg_match("/(abc)[^((?!xyz).)*$]/is", $str);
該方法有效,本人使用方法如下:
(?:(?!<//div>).|/n)*? //匹配不含</div>的一個字符串
但最終使用中結果是發現,該方法效率極其低下,在處理非常短文字(要匹配該正則式的相同部分的有十幾個字,或者最多幾十個)時間可以考慮使用,但當用于大篇幅文章解析或多處需要改種匹配時間應不使用,考慮用其他方法替代(如:先解析出要匹配該段正則式的文字,然后驗證其中是否存在某段文字),正則表達式對于匹配不含特定字符串的文字段時并不是非常有效的方法.
新聞熱點
疑難解答