Maison >développement back-end >tutoriel php >php正则表达式(regar expression)

php正则表达式(regar expression)

高洛峰
高洛峰original
2016-11-30 14:01:291059parcourir

引言: 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串 

的需要。正则表达式就是用于描述这些规则的语法。 
例:在判断用户邮件地址格式、手机号码格式或者采集别人网页内容时. 
php也常常用到正则表达式 php有两个常用的正则表达式函数:preg_match和ereg。 
我今天刚看了preg_match.它的具体写法是preg_match(mode,string subject,array matches); 
以下是我写的一个example. 
复制代码 代码如下: 
$mode="/[^8s]/";//匹配模块
$str="sssjj88d";//匹配内容
echo "


"; 
if(preg_match($mode,$str,$arr)){ //匹配函数 
echo "匹配成功".$arr[0];//$arr[0]:匹配结果集的第一个值 

else{ 
echo "匹配失败"; 


结果: 
正则表达式(regular expression)"元字符": 
*匹配前一个内容的0次或多次,即前一个内容任意都匹配 
.匹配内容的0次1次或多次,但不包含回车换行 
+ 匹配前一个内容的1次或多次(除了空)。 
| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配) 
^ 匹配字符串首部内容 
$ 匹配字符串尾部内容 
{a,b},表示匹配前一个内容的次数,这个表示次数从a到b之间。 
( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取 
以下是我用php写的一个example: 
复制代码 代码如下: 
$mode="/\d{2,4}(.*)\d{1,2}\\1\d{1,2}/";//匹配模块一般写得越简单越好
//$mode="/2009(.*)9\\1(10)/";
$str="2011/9/10";
if(preg_match($mode,$str,$arr)){
echo "匹配成功"."
".$arr[0]."

教师节快乐"; 

else{ 
echo "匹配失败"; 

?> 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn