程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 正則表達式中量詞的使用

正則表達式中量詞的使用

編輯:PHP綜合

在本文中,我們來了解一下* ,+等量詞的使用。

* 匹配前一個內容的0次1次或多次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph*p/";
$string="php"; //匹配成功
//$string="phhhhp"; //匹配成功
//$string="pp"; //匹配成功
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

. 匹配內容的0次1次或多次,但不包含回車換行。就是說,.代表任何內容。

.經常和*搭配使用, .*表示前導任意字符

例:/g.*d/

god,good,gad ,gaf2514d 都匹配成功

+ 匹配前一個內容的1次或多次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph+p/";
$string="php"; //匹配成功
//$string="phhhhp"; //匹配成功
//$string="pp"; //匹配失敗
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

?匹配前一個內容的0次或1次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph?p/";
$string="php"; //匹配成功
//$string="phhhhp"; //匹配失敗
//$string="pp"; //匹配成功
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

| 選擇匹配,匹配字符串的左邊或者右邊,類似PHP中的| (因為這個運算符合是弱類型導致前面最為整體匹配)

<?php
header("content-type: text/html;charset=utf-8");
$mode="/php|asp/";
//$string="This is php"; //匹配成功
$string="asp users"; //匹配成功
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

^ 匹配字符串首部內容

<?php
header("content-type: text/html;charset=utf-8");
$mode="/^php/";
//$string="This is php"; //匹配失敗
$string="php users"; //匹配成功
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

$ 匹配字符串尾部內容

<?php
header("content-type: text/html;charset=utf-8");
$mode="/php$/";
$string="This is php"; //匹配成功
//$string="php users"; //匹配失敗
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

\b 匹配單詞邊界,邊界可以是空格或者特殊符合

例:

$mode="/\bis\b/";

$str="What is it?";

匹配成功

\B 匹配除帶單詞邊界以外內容,就是不允許有分隔符,與\b相反

{m} 匹配前一個內容的重復次數為m次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph{2}p/";
$string="phhp"; //匹配成功
//$string="phhhp"; //匹配失敗
//$string="php"; //匹配失敗
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

{m,} 匹配前一個內容的重復次數大於等於M次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph{2,}p/";
$string="phhp"; //匹配成功
//$string="phhhp"; //匹配成功
//$string="php"; //匹配失敗
//$string="phhhhhhp"; //匹配成功
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

{m,n} 匹配前一個內容的重復次數M次到N次

<?php
header("content-type: text/html;charset=utf-8");
$mode="/ph{2,4}p/";
$string="phhp"; //匹配成功
//$string="phhhp"; //匹配成功
//$string="php"; //匹配失敗
//$string="phhhhhhp"; //匹配失敗
if(preg_match($mode,$string)){
echo "匹配成功!";
}else{
echo "不匹配!";
}
?>

( ) 合並整體匹配,並放入內存,可使用\\1 ,\\2…依次獲取

例:

$mode="/2016(.*)08\\1(10)/";

$str="2016-08-10";和$str="2016/08/10";都匹配成功

簡單的日期匹配:

$mode="/[0-9]{2,4}(.*)[0-9]{1,2}\\1[0-9]{1,2}/";

$str="2016-08-10";和$str="16/08/10";都匹配成功

URL: http://www.bianceng.cn/webkf/PHP/201701/50528.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved