国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

php 正則 不包含某字符串的正則表達式

2020-03-16 21:15:37
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了判斷一個字符串中是否含有另一字符串,php有很多方法
 
 

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

復制代碼代碼如下:

<?php 
$str = "dfadfadf765577abc55fd"; 
$pattern_url = "/^((?!abc).)*$/is"; 
if (preg_match($pattern_url, $str)){ 
echo "不含有abc!"; 
}else{ 
echo "含有abc!"; 

?> 

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

 

以下是補充:

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

1. 常見函數

strstr($str, "abc");

2. 正則匹配

preg_match("/(abc)/is", $str);

但是要匹配一個字符串中,不包含某字符串,用正則就比較麻煩了。
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!";
}

 

結果為:false,含有abc!

同時匹配,包含字符串 "abc",而且不包含字符串 "xyz"的正則表達式:

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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富源县| 香河县| 鹤峰县| 元谋县| 竹山县| 页游| 水富县| 孝义市| 松阳县| 沙洋县| 湛江市| 奉节县| 大渡口区| 龙江县| 福州市| 鹿泉市| 昌乐县| 宜宾市| 娄烦县| 兴义市| 哈巴河县| 枣庄市| 文山县| 皮山县| 福鼎市| 桂林市| 五原县| 香港 | 阜阳市| 芷江| 玛曲县| 敦煌市| 灵武市| 木里| 水城县| 涡阳县| 宜宾市| 蚌埠市| 惠东县| 策勒县| 景泰县|