正则表达式中量词的使用2017-01-16 本站 guaitu在本文中,我们来了解一下* ,
+等量词的使用。
* 匹配前一个内容的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 "不匹配!";
}
?>
匹配单词边界,边界可以是空格或者特殊符合例:$mode="/is/";$str="What is it?";匹配成功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