`
opensuse
  • 浏览: 186903 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP与正则表达式 2 :一些修饰符与preg_match_all

    博客分类:
  • php
阅读更多

看到了这个函数preg_match_all( )  ,它的作用是进行全局正则表达式匹配

于是在手册上看到了这个例子:

<? php
preg_match_all  ( " |<[^>]+>(.*)</[^>]+>|U " ,
    
" <b>example: </b><div align=left>this is a test</div> " ,
    
$out ,  PREG_PATTERN_ORDER);

/*
<
一个或多个未包含‘〉’的字符    
>

零个或多个字符

〈/

一个或多个未包含‘〉’的字符
    
>

*/

print_r  ( $out );

?>  

上面那个正则表达式的意义已经写在程序里了。

结果是:

Array
(
    [
0 =& gt;  Array
        (
            [
0 =& gt;  < b > example :   </ b >
            [
1 =& gt;  < div align = " left " > this is a test </ div >
        )

    [
1 =& gt;  Array
        (
            [
0 =& gt; example :  
            [
1 =& gt; this is a test
        )

)
 

这个可以理解。但是我忽然注意到了程序里面的那个U

于是就在想这个U是干什么的?当我把U去掉的结果是:

Array
(
    [
0 =& gt;  Array
        (
            [
0 =& gt;  < b > example :   </ b >< div align = " left " > this is a test </ div >
        )

    [
1 =& gt;  Array
        (
            [
0 =& gt; example :   < div align = " left " > this is a test
        )

)
 
很有意思,于是我以为这个U的作用是不理会前面的语句。

但是有些乱,于是Google了一下,不得不说Google这个没有搜到,最后是在百度上查到的。

其实我还是喜欢Google。。。^_^

查看结果如下:
修饰符
意 义

/ regexp / i
不区分大小写的匹配

/ regexp / s
使句点(
. )匹配任何字符,包括换行符( )

/ regexp / x
从模式中删除空白符和注释

/ regexp / m
使
^ 匹配换行符 ( )之后的内容,美元符号($)匹配换行符 ( )之前的内容

/ regexp / e
如果替换字符串是PHP代码,使用eval()执行该代码来得到实际的替换字符串。

PHP的Perl兼容正则表达式函数也支持在Perl中不支持的其他修饰符,如表4
- 13所示:

表4
- 13 :其他的PHP标志

修饰符
意 义

/ regexp / U
颠倒子模式的贪婪性;
* + 尽可能少地匹配而不是尽可能多。

/ regexp / u
把模式字符串当作UTF
- 8编码对待

/ regexp / X
如果一个反斜杠之后跟着没有特殊意义的字符,将产生一个错误

/ regexp / A
把锚定位在字符串的开头就像模式中有
^ 一样

/ regexp / D
使
$字符仅匹配一行的末尾

/ regexp / S
使表达式解析器更加小心地检查模式的结构,使得第二次运行时(如在一个循环中)加快速度
原来还有修饰符,呵呵,

学到了,记下来吧。。嗯。。嘿嘿。。。Good Good Study,Day  Day  Up!!!

分享到:
评论

相关推荐

    preg-match绕过

    在 PHP 中,preg_match 函数用于执行正则表达式匹配。为了避免绕过 preg_match 函数的功能限制,通常可以采取以下措施: 过滤用户输入:在将用户输入作为正则表达式模式使用之前,应该对其进行过滤和验证,确保用户...

    PHP常用正则表达式汇总

    三、正则表达式修饰符 1. `i`:使匹配不区分大小写。 2. `m`:多行模式,使`^`和`$`匹配每一行的开始和结束。 3. `s`:使`.`匹配包括换行符在内的所有字符。 4. `g`:全局匹配,找到所有匹配项,而非仅第一个。 四...

    PHP 常用的正则表达式例子

    2. **正则表达式修饰符** - i:使匹配对大小写不敏感。 - m:多行模式,使得^和$可以匹配每一行的开头和结尾。 - s:使.匹配包括换行符在内的所有字符。 - g:全局匹配,找到所有匹配,而不仅仅是第一个。 3. *...

    PHP正则表达式快速学习及PHP常用正则表达式大全实用文档.doc

    在使用 `preg_match` 等函数时,可以设置 `error_reporting(E_ALL)` 来开启错误报告,以获取关于正则表达式的错误信息。 总结起来,PHP正则表达式是一种强大的文本处理工具,它可以帮助开发者高效地进行字符串的...

    正则表达式PHPChina PHP进阶学习

    在PHP中,我们通常使用`preg_match()`、`preg_replace()`等函数来执行正则表达式相关的操作。 1. **基础匹配**: - 字符匹配:`.`代表任意单个字符,`\w`匹配字母、数字或下划线,`\s`匹配空白字符。 - 量词:`*`...

    正则表达式在线测试 v1.0

    7. **修饰符**:在正则表达式末尾可以添加修饰符来改变其行为,如`i`表示忽略大小写,`m`使`^`和`$`匹配每一行的开始和结束,`g`表示全局匹配。 8. **反向引用**:在PHP中,`\1`到`\9`可以用来引用前面捕获的组。 ...

    PHP 正则表达式.rar

    2. `preg_match_all()`:与`preg_match()`类似,但它会返回所有匹配的子串数组。 3. `preg_replace()`:用新字符串替换匹配到的正则表达式,返回替换后的字符串。 4. `preg_split()`:根据正则表达式来分割字符串,...

    php常用正则表达式

    3. **正则表达式修饰符** - `i`: 忽略大小写。 - `m`: 多行模式,使`^`和`$`分别匹配每一行的开始和结束。 - `s`: 使`.`匹配包括换行符在内的任何字符。 - `x`: 扩展模式,允许正则表达式中包含注释。 4. **...

    正则表达式在PHP中的应用.pdf

    - `preg_match_all`:找出所有匹配的子串并返回数组。 - `preg_replace`:使用正则表达式替换字符串中匹配的部分。 - `preg_quote`:转义正则表达式中的特殊字符,用于构建安全的正则表达式。 - `preg_split`:...

    PHP和正则表达式的关系

    - 修饰符:正则表达式可以使用修饰符来改变其行为,如`i`使匹配不区分大小写,`g`使匹配全局而非仅第一次,`m`使`^`和`$`分别匹配每一行的开头和结尾。 - 分组:使用圆括号`()`可以创建捕获组,以便于在替换操作中...

    php正则表达式全集

    1. **`preg_match()`**:用于检测给定的正则表达式是否与字符串相匹配。 2. **`preg_match_all()`**:查找所有匹配项并返回它们。 3. **`preg_replace()`**:执行一个正则表达式的搜索和替换。 4. **`preg_split()`*...

    PHP正则表达式快速学习及PHP常用正则表达式大全.pdf

    在PHP中,正则表达式可以通过内置函数如`preg_match()`、`preg_match_all()`、`preg_replace()`等函数来使用。 ### 基本正则表达式元字符 - `\w` 匹配任意字母数字字符以及下划线。 - `\s` 匹配任意空白字符。 - `...

    正则表达式函数笔记.php

    php正则表达式笔记,本人手写的 //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //...

    PHP正则表达式学习资料

    例如,`/pattern/flags`,其中`pattern`是正则表达式,`flags`是可选的修饰符,如`i`表示不区分大小写,`m`使`^`和`$`分别匹配每一行的开始和结束,`g`全局匹配而非仅匹配第一次。 在实际应用中,PHP正则表达式常常...

    快速精通php正则表达式

    在PHP中,正则表达式的模式修饰符也非常重要。`i`修饰符使匹配变为不区分大小写,`m`修饰符使`^`和`$`分别匹配每一行的开头和结尾,而不是整个字符串的开始和结束,`s`修饰符使`.`能够匹配包括换行符在内的所有字符...

    正则表达式,掌握正则表达式

    - **函数接口**:PHP提供了多种与正则相关的函数,如`preg_match()`用于单次匹配,`preg_match_all()`用于全局匹配,`preg_replace()`用于替换,`preg_split()`用于分割字符串。 - **正则修饰符**:如`i`忽略大小...

    PHP之正则表达式系统教程

    三、正则表达式修饰符 1. `i`:使匹配变为不区分大小写。 2. `m`:多行模式,`^`和`$`分别匹配每一行的开始和结束。 3. `s`:使`.`可以匹配任何字符,包括换行符。 4. `g`:全局匹配,找到所有匹配而非仅第一个...

    判断不同编码的正则表达式

    ### 判断不同编码的正则表达式 在处理文本数据时,经常需要验证字符串是否符合某种特定的格式或编码标准。对于不同的字符编码(如GB2312、UTF-8等),其对应的正则表达式也会有所不同。本文将探讨如何通过PHP语言中...

    php正则表达式大全

    在PHP中,可以使用`preg_match`、`preg_replace`等函数来执行正则表达式操作。例如,`preg_match('/pattern/', $subject)`会返回是否在`$subject`字符串中找到匹配的模式。 总之,PHP的正则表达式功能强大且灵活,...

Global site tag (gtag.js) - Google Analytics