PHP学习练手(十六)

来源:互联网 发布:php常用的系统函数 编辑:程序博客网 时间:2024/05/17 11:35

Perl兼容的正则表达式


一、函数:

preg_match():指示模式是否与字符串匹配,一旦找到一个匹配返回1,否则返回0

preg_match_all():找到所有的匹配

preg_replace():实现查找和替换作用

二、简单的模式:
1. 字面量:是一个值,其书写方式与所解释的完全一样。例如,模式a将匹配字母a,ab将匹配ab等。

  1. 定界符:可以是除字母数字或反斜杠外的任何字符,必须使用相同的字符来标记模式的开始和结束。通常使用正斜杠(/)

  2. 元字符 :
    这里写图片描述

  3. 量词:
    这里写图片描述

  4. 常见的字符类别:
    这里写图片描述



    三、实践:

    1.单一匹配——pcre.php

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Testing PCRE</title></head><body>    <?php # Script 14.1- pcre.php        if($_SERVER['REQUEST_METHOD'] == 'POST')        {            $pattern = trim($_POST['pattern']);            $subject = trim($_POST['subject']);            echo "<p>The result of checking<br /><b>$pattern</b><br />aganist<br />$subject<br />is</p>";            if(preg_match($pattern, $subject))            {                echo 'TRUE!</p>';            }else{                echo 'FALSE!</p>';            }        }    ?>    <form action="pcre.php" method="post">        <p>Regular Expression Pattern: <input type="text" name="pattern" value="<?php if(isset($pattern)) echo htmlentities($pattern); ?>" size="40">(include the delimiters)</p>        <p>Test Subject: <input type="text" name="subject" value="<?php if(isset($subject)) echo htmlentities($subject); ?>" size="40" /></p>        <input type="submit" name="submit" value="Test!">    </form></body></html>

——实现电子邮件验证:电子邮件开始于字母、数字或下划线,以及句点(.)或短划线。
这里写图片描述

2.所有匹配——matches.php

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Testing PCRE</title></head><body>    <?php # Script 14.1- pcre.php        if($_SERVER['REQUEST_METHOD'] == 'POST')        {            $pattern = trim($_POST['pattern']);            $subject = trim($_POST['subject']);            echo "<p>The result of checking<br /><b>$pattern</b><br />aganist<br />$subject<br />is</p>";            if(preg_match_all($pattern, $subject, $matches))            {                echo 'TRUE!</p>';                echo '<pre>'.print_r($matches, 1).'<pre>';            }else{                echo 'FALSE!</p>';            }        }    ?>    <form action="matches.php" method="post">        <p>Regular Expression Pattern: <input type="text" name="pattern" value="<?php if(isset($pattern)) echo htmlentities($pattern); ?>" size="40">(include the delimiters)</p>        <p>Test Subject: <textarea name="subject" rows="5" cols="40"><?php if(isset($subject)) echo htmlentities($subject); ?></textarea></p>        <input type="submit" name="submit" value="Test!">    </form></body></html>

这里写图片描述

3.匹配和替换——replace.php

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Testing PCRE</title></head><body>    <?php # Script 14.1- pcre.php        if($_SERVER['REQUEST_METHOD'] == 'POST')        {            $pattern = trim($_POST['pattern']);            $subject = trim($_POST['subject']);            $replace = trim($_POST['replace']);            echo $subject;            echo "<p>The result of replacing<br /><b>$pattern</b><br />with<br />$replace<br />in<br />$subject<br /><br />";            if(preg_match($pattern, $subject))            {                echo preg_replace($pattern, $replace, $subject).'</p>';            }else{                echo 'The pattern was not found!</p>';            }        }    ?>    <form action="replace.php" method="post">        <p>Regular Expression Pattern: <input type="text" name="pattern" value="<?php if(isset($pattern)) echo htmlentities($pattern); ?>" size="40">(include the delimiters)</p>        <p>Replacement: <input type="text" name="replace" value="<?php if(isset($replace)) echo htmlentities($replace); ?>" size="40"></p>        <p>Test Subject: <textarea name="subject" rows="5" cols="40"><?php if(isset($subject)) echo htmlentities($subject); ?></textarea></p>        <input type="submit" name="submit" value="Test!">    </form></body></html>

这里写图片描述

0 0
原创粉丝点击