php中的preg match()函式

2022-01-15 00:19:03 字數 4670 閱讀 4639

1樓:海天盛

preg_match()函式用於正規表示式知識匹配,如果成功則返回1,否則返回0。

preg_match()在成功匹配之後停止匹配,如果要實現所有結果的內部匹配,則使用preg_match_all()函式。

php函式取得字串長度:

1.首先,建立一個新的php檔案並將其命名為test.php。

2.在test.php檔案中,定義兩個字串,一個是純英文字串,另一個是中英文混合字串。

3.使用strlen()方法來計算長度,從程式執行結果來看,strlen()方法計算的字串長度$str1是正確的,第二個字串$str2是錯誤的。

4.建立一個新的utf8_strlen()函式,並將其引數定義為$string,預設為null。

5.在utf8_strlen()函式中,使用preg_match_all()方法通過正規表示式分割字串,並將其儲存在$match變數中。最後,計算從count()方法獲得的陣列元素的數量,並返回結果。

6.使用utf8_strlen()分別計算$str1和$str2字串的長度,並使用echo將結果輸出到頁面。

7.在瀏覽器中執行test.php檔案並檢視程式執行的結果。從這兩個結果可以看出,統計字串長度已經成功實現。

2樓:__峰迴路轉

preg_match() 函式用於進行正規表示式匹配,成功返回 1 ,否則返回 0 。

preg_match() 匹配成功一次後就會停止匹配,如果要實現全部結果的匹配,則需使用preg_match_all() 函式。

例子:

// 模式定界符後面的 "i" 表示不區分大小寫字母的搜尋if (preg_match ("/hi/i", "welcome to hi-docs.com."))  else

?>

// 輸出 a match was found.

3樓:百度網友

1 preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename)這句話的意思是檢查檔名稱是不是以點.gif/.

jpeg...結束的

2 preg_match只要匹配到一個符合條件的就結束查詢,而preg_match_all要將字串從頭檢查到尾,不論是否找到匹配字元。

3 if (!preg_match('/\\.($allowtype)$/i', $filename)) 這句話有錯,'引號中的$allowtype是不能引用變數值的,只當作字串,因此應該這樣:

if (!preg_match('/\\.('.

$allowtype.')$/i', $filename))

4樓:匿名使用者

$filename--需要匹配的內容

preg_match()和preg_match all()函式的區別:一個匹配到內容就結束,一個匹配全部符合條件的;

怎麼改?把if (!preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename)) 裡面的!去掉唄

有關於php if () 和!及正則函式preg_match判斷問題

5樓:匿名使用者

^||if(!$m || !preg_match("/^[a-z]+$/", $m))

! 是不為真 即0, false或null 等值|| 是or的意思即或者

!preg_match 即不匹

配上面版的**是判斷$m 這個權值是0, 空值或false時, 或者 不匹配英文字母就執行下面的**

6樓:匿名使用者

preg_match("/^[a-z]+$/", $m)中/^[a-z]+$/是正則表達抄式,這個表示式的意思是所有匹配的英文字串。

if(!$m || !preg_match("/^[a-z]+$/", $m))意思是非空且不是英文字串

7樓:匿名使用者

如果$m的布覆爾值為false或者$m不為制小寫字母時,執行 $m = $_g['cfg']['index_module']; 否則 $m = 'index';

其實前一個判斷是完全沒必要的,這種判斷在preg段完全可以實現!

php中ereg() ,preg_match() 有啥區別?

8樓:放逐的天歌

ereg是早先的,preg_match是後加的,php6要廢除posix正則了,不過很奇怪,很多老外的經典教程裡只寫posix正則,不寫perl型的

9樓:匿名使用者

函式用法:

preg_match(mode, string subject, array matches); 相比ereg更加規範,執行效率越高

ereg(mode, string subject, array regs);

mode:正規表示式(preg_match中的mode必須以’/'開始和“/”結束)

subject: 需要驗證的字串

matchs/regs: 匹配後得到的結果。以陣列的形式儲存

preg_match和 preg_match_all區別是preg_match只匹配一次。而preg_match_all全部匹配,直到字串結束。

示例如下:

$date = date(‘y-m-d’);

//ereg函式

ereg("([0-9])-([0-9])-([0-9])",$date,$rs);

var_dump($rs);

unset($rs);

echo "—————————————–

";//preg_match函式

preg_match("/([\d])-([\d])-([\d])/",$date.$date,$rs);

var_dump($rs);

unset($rs);

echo "—————————————–

";//preg_match_all函式

preg_match_all("/([\d])-([\d])-([\d])/",$date.$date,$rs);

var_dump($rs);

?>

如下輸出:

array(4)

—————————————–

array(4)

—————————————–

array(4)

[1]=>

array(2)

[2]=>

array(2)

[3]=>

array(2)

}php中如何用正則函式來驗證中文字串

驗證中文字串正規表示式為: /^[\x-\x]+$/u

方法如下:

$str = "個人部落格";

if(preg_match("/^[\x-\x]+$/u",$str))else

php preg_match 函式怎麼匹配中文?

10樓:匿名使用者

//示例**:bai

$str = 'hello 這裡是php preg_match正則匹配du演示zhi';

// utf8編碼:正規表示式dao匹配中文內;if(preg_match('/[\x-\x]+/u',$str))else

// gb2312,gbk編碼:正規表示式匹配中文;

if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."a-za-z0-9_]+$/",$str))else

?>

11樓:家有核潛艇

你只要注意 編碼就行了,一樣的匹配

12樓:匿名使用者

$a = "漢123456字 漢dsghh45字";

preg_match_all('/漢(.*?)字/', $a, $match);

foreach($match[1] as $a) echo $a."";

13樓:匿名使用者

$str="白日依山盡";

$preg="/白(.*?)盡/";

preg_match($preg,$str,$arrs);

echo $arrs[1];

14樓:居平鞠凝丹

//示例**:

$str = 'hello 這裡

bai是

duphp preg_match正則匹配演示';

// utf8編碼:正規表示式匹zhi配中dao文;

if(preg_match('/[\x-\x]+/u',$str))else

// gb2312,gbk編碼:正規表示式匹配中文;

if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."a-za-z0-9_]+$/",$str))else

?>

php中正則函式preg_match匹配出現錯誤,應該是什麼問題?

15樓:百度網友

這個是你的表示式語法問題,preg_match中的表示式應該帶有斜槓,你這個應該修改為'/^[a-z0-9_\-\.][email protected][a-z0-9\-]+\.[a-z0-9\-\.]+$/i'