PHP中正则表达式学习及应用(二)

正则表达式中的“元字符”

* 匹配前一个内容的0次1次或多次

例如:

<?php
    $mode="/go*gle/";  //前一个内容指的是 * 的前一个字符 o ,在$str中出现的次数最少0次。也就是说,可以出现,也可以不出现。
    $str="google";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

. 匹配内容的0次1次或多次,但不包含回车换行

例如:

<?php
    $mode="/go.gle/"; //与 * 的用法类似,就是将 \n 排除在外
    $str="google";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

+ 匹配前一个内容的1次或多次

例如:

<?php
    $mode="/go+gle/"; //与 * 的用法类似,将0次排除在外。
    $str="gooogle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功gooogle

匹配前一个内容的0次或1次

例如:

<?php
    $mode="/go?gle/"; //与*用法类似,将多次排除在外
    $str="gogle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功gogle

| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)

例如:

<?php
    $mode="/google|abc/"; //google和bac 同时在$str中出现 或者 google出现 或者 bac出现。
    $str="googlebac";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

^ 匹配字符串首部内容

例如:

<?php
    $mode="/^google/"; //字符串google出现在$str的首部
    $str="googleabc";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

$ 匹配字符串尾部内容

例如:

<?php
    $mode="/google$/"; //google出在$str的尾部
    $str="abcgoogle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

\b 匹配单词边界,边界可以是空格或者特殊符合

例如:

<?php
    $mode="/\bgoogle\b /"; //匹配$str中的空格或者是其他字符
    $str="abc google ";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

\B 匹配除带单词边界之外的内容

例如:

<?php
    $mode="/\bgoogle\B/";  //匹配除带单词之外的内容
    $str="abc googleabc";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

{m} 匹配前一个内容的重复次数为M次

例如:

<?php
    $mode="/go{2}gle/"; //匹配$str中的字符 o 出现2次
    $str="google";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功google

{m,} 匹配前一个内容的重复次数大于等于M次

例如:

<?php
    $mode="/go{2,}gle/"; //匹配$str中字符 o 的次数大于等于2次
    $str="gooogle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功gooogle

{m,n} 匹配前一个内容的重复次数M次到N次

例如:

<?php
    $mode="/go{2,4}gle/";  //匹配$str中字符 o 大于2次小于4次
    $str="gooogle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功gooogle

( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取

例如:

<?php
    $mode="/goo(abc)gle/"; //匹配$str中的abc
    $str="gooabcgle";
    $flag=preg_match($mode, $str, $arr);
    //print_r($arr);
    if($flag){
        echo "匹配成功".$arr[0];
    }else{
        echo "匹配失败";
    }
?> 

输出:

匹配成功gooabcgle

若有疑问请联系:QQ 907811190

施主、赏个糖吃ma(☆_☆)/~~ (☆_☆)/~~。。。。

支付宝账号:[email protected]

时间: 2024-10-13 07:31:44

PHP中正则表达式学习及应用(二)的相关文章

PHP中正则表达式学习及应用(四)

正则表达式在PHP中的应用 1.匹配功能 2.替换功能 3.分割功能 例如: <?php $str="addsds{title}hfksjd{author}hfjdkjd{conn}jdskd"; $mode="/{(.*)}/U"; preg_match_all($mode,$str,$arr); print_r($arr); ?> 输出: Array ( [0] => Array ( [0] => {title} [1] => {a

JavaScript中正则表达式学习笔记

一.正则表达式是什么: 处理字符串时,经常需要处理复杂规则的字符串.正则表达式就是用于描述这些规则的工具.换句话说,就是记录文本规则的代码. 二.正则表达式能做什么: 数据有效性验证(测试字符串匹配)如邮箱,电话号码等 替换文本 提取子字符串 三.特点: 灵活性.逻辑性.功能性非常强 可以迅速的用极简单的方法达到字符串的复杂控制 刚接触的人比较晦涩难懂 四.规则 1.普通字符 作用:匹配与之相同的一个字符. 字母,数字,汉字,下划线. 2.非打印字符 \f:匹配一个换页符.等价于 \x0c 和

正则表达式 学习笔记(二)

纠正一个错误,昨天我用了Match这个只能匹配出第一个 用Matches可以匹配出所有符合正则表达式的字符 4.字符类的反义 [^a]表示匹配任何不是“a”的字符 [^a-zA-Z0-9]表示匹配任何不是字母也不是数字的字符 [\^abc]匹配一个为“^”或者a或者b或者c的字符 [^\^]表示匹配任何不为“^”的字符 5.转义字符类 如何有效的缩短正则表达式的长度? \d = [0-9]               作用相同,都是匹配任何一个数字.(要匹配\d,应该使用正则表达式\\d) \D

PHP中正则表达式学习及应用(三)

正则表达式中的“模式修正符” 1.运算顺序    2.模式修正符 i 正则内容在匹配时候不区分大小写(默认是区分的) 例如: <?php $mode="/[a-z]/i"; //加上模式修正符 i 不区分大小写 $str="G"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配

黑马程序员------Java中多线程学习总结(二)

Java培训.Android培训.iOS培训..Net培训,期待您的交流 在Java多线程中,如果有多个线程同时操作共享数据时,就可能会发生数据异常 如下面这段代码: /* * 模拟卖票 */ class Ticket implements Runnable { private int tick = 10; Object obj = new Object(); public void run() { while(true) { if(tick>0) { try{Thread.sleep(10);

正则表达式学习笔记(二)

字符转义 如何在目标字符串里面查找元字符呢?比如".""*",如果直接在正则表达式里面直接使用肯定是不行的. 正则表达式这里处理的办法和 一般编程语言处理方式相类似,直接使用\来取消它的元字符地位,于是,可以在元字符里面可以这样使用:"\."或者"\*". 查找未被预定义的字符 标题的意思是说,如果想要查找的字符没有相对应的元字符来处理怎么办?在正则表达式里面我们使用中括号[]来处理,你只要在中括号里面列举你想要查找的字符就可

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

winform学习日志(二十八)----------将汉字转化为拼音,正则表达式和得到汉字的Unicode编码

一:上图,不清楚的看代码注解,很详细了 二:具体代码 窗体代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressio

java基础----&gt;java中正则表达式二

跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下: Pattern pattern = Pattern.compile("^[^abc]h$"); Matcher matcher = pattern.matcher("hh"); boolean isMatch = matcher.matches(); 另外一种不能复