php正则表达式举例

时间:2021-05-31 14:50:05

1 .方括号[]

表示在止标字符串中寻找字符。

2.连字符(-)

例如:[a-z]

3.点字符(.)

是一个通配符,代表所有字符和数字

4.限定符(+*?{n,m})

+表示其前面字符少一个

*表示期前面字符不止一个或零个。如"y*",表示目标字符串包含零或不止一个y.

5.行定位符(^和$)

^表示目标字符串在开头出现,$表示目标字符串在结尾出现

6.排除字符([^])

7.括号字符[()]

表示字符串是一个整体

8.选择字符(|)

9.转义字符(\)与反斜线(\)

匹配函数:preg_match(正则表达式,目标字符串,[数组])

替换字符串函数:preg_replace(正则表达式规范,欲取代字符串子串,目标字符串,[替换的个数])

                           如:preg_replace('/\s/','-',$aa)

切分字符串:strtok(正则表达式,目标字符串)

                           如:strtok($string," ")

举例电子邮件地址匹配:

<?php
$email="wangxiaoming2011@hotmail.com";
$email2="The email is liuxiaoshuai_2011@hotmail.com";
$email3=". @hotmail.com";
$asemail="this is wangxiaoming2011@hotmail.com";
$regx='/^[a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9_.]+$/';
$regx2='/[a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9_.]+$/';
if(preg_match($regx, $email,$a)){
 echo "This is an email.";
 print_r($a);
};
echo "</br>";
if(preg_match($regx2, $email2,$b)){
 echo "This is an email.";
 print_r($b);
}
echo "</br>";
if(preg_match($regx, $asemail,$c)){
 echo "This is an email.";
 }else{
  echo "This is not an email.";
  print_r($c);
 }
echo "</br>";
if(preg_match($regx, $email3,$d)){
 echo "This is an email.";
 }else{
  echo "This is not an email.";
  print_r($c);
 }
echo "</br>";
?>

 

######################订房页面举例########################

-------------------------------1.订房表单dingfangform.php-----------------------------

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>在线订房表</title>
</head>
<body>
 <form action="dingfang.php" method="post">
  <table>
   <tr bgcolor="#3399FF">
    <td>客户姓名</td>
    <td><input type="text" name="customername" size="20"/></td>
   </tr>
   <tr bgcolor="#cccccc">
    <td>客户性别</td>
    <td>
     <select name="gender">
      <option value="m">男</option>
      <option value="f">女</option>
     </select>
    </td>
   </tr>
   <tr bgcolor="#3399FF">
    <td>到达时间</td>
    <td>
     <select name="arrivaltime">
      <option value="1">一天后</option>
      <option value="2">二天后</option>
      <option value="3">三天后</option>
      <option value="4">四天后</option>
      <option value="5">五天后</option>
     </select>
    </td>
   </tr>
   <tr bgcolor="#cccccc">
    <td>电话:</td>
    <td><input type="text" name="phone" size="20" /></td>
   </tr> 
   <tr bgcolor="#3399FF">
    <td>email:</td>
    <td><input type="text" name="email" size="30" /></td>
   </tr>
   <tr bgcolor="#cccccc">
    <td>其它需求:</td>
    <td><textarea name="info" rows="10" cols="30">如果您有什么其他需求,请填在这里。</textarea></td>
   </tr>
   <tr bgcolor="#666666">
    <td>电话:</td>
    <td align="center"><input type="submit" value="确认订房信息"/></td>
   </tr>
  </table>
 </body>
 </html>

 

--------------------------------------2.订房处理表单 dingfang.php---------------------------------------------

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>你的订房信息</title>
</head>
<body>
 <?php
 $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
 $customername=trim($_POST['customername']);
 $gender=$_POST['gender'];
 $arrivaltime=$_POST['arrivaltime'];
 $phone=trim($_POST['phone']);
 $email=trim($_POST['email']);
 $info=trim($_POST['info']);
 if(!preg_match('/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/',$email))
 {
  echo "这不是一个有效的email地址,请返回上页且重试";
  exit;
 }
 if(!preg_match('/^[0-9]$/',$phone) and strlen($phone)<=4 or strlen($phone)>=15 )
 {
  echo "这不是一个有效的电话号码,请返回上页且重试";
  exit;
 }
 if($gender=='m'){
  $customer="先生";
 }else{
  $customer="女士";
 }
 echo '<p>您的订房信息己经上传,我们正在为您准备房间,确认您的订房信息如下:</p>';
 echo $customername."\t".$customer.'将会在'.$arrivaltime.'天后到达。您的电话为'.$phone.'我们将会发达一封电子邮件到您的邮箱:'.$email.'.<br><br>另外,我们己经确认了您其他的要求如下:<br><br>';
 echo nl2br($info);
 echo "<p>您的订房时间为:".date('Y m d H: i: s')."</p>";
 ?>
</body>
</html>