`
lyongde
  • 浏览: 91316 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

preg_replace函数中正则表达式的逆向引用

    博客分类:
  • PHP
阅读更多

众所周知,正则表达式不简单。

 

今天用到函数 preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit ] ),其中的$replacement参数涉及到逆向引用,看了一下PHP手册,对逆向引用概念糊涂中.......。

 

经过学习,基本了解,作如下笔记

 

什么是逆向引用?

 

preg_replace函数的作用是在$subject 文本中查找匹配模式$pattern,用替换文本$replacement进行替换即可,逆向引用除了上述以外,另外还要对$replacement中的等殊逆向引用字符在$subject与$pattern子模式中匹配的文本进行替换。

 

什么是子模式?

 

$pattern参数中被括号括起来的正则表达式。

 

如何应用?

$replacement 可以包含 \\n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \\0$0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。

 

 

分享到:
评论

相关推荐

    ecmall 解决php5.6升级后的所有bug preg_replace_callback()

    `preg_replace_callback()`是PHP中的一个正则表达式处理函数,用于执行一个回调函数对每个匹配的字符串进行替换,而在PHP不同版本之间,其行为可能有所差异。 在PHP5.6之前,`preg_replace_callback()`在某些特定...

    详解PHP正则表达式替换实现(PHP preg_replace,PHP preg_replace)

    preg_replace:执行正则表达式的搜索和替换 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) preg_replace:允许你替换字符串中匹配到你定义的正则表达式。 一个简单的...

    慎用preg_replace危险的/e修饰符(一句话后门常用)

    preg_replace函数原型: mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) 特别说明: /e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换...

    c#中的实现php中的preg_replace

    在C#中,虽然没有内置的`preg_replace`函数,但通过这个自定义的`PregReplace`方法,我们可以实现类似的功能,从而在.NET环境中处理正则表达式的替换操作。这个方法同样支持数组输入,允许一次替换多个模式,与PHP的...

    php中preg_replace_callback函数简单用法示例

    `preg_replace_callback`与`preg_replace`的主要区别在于,`preg_replace`需要提供一个预定义的替换字符串,而`preg_replace_callback`则允许更动态的处理,可以根据匹配的内容生成替换字符串,这在处理复杂替换逻辑...

    PHP中一个有趣的preg_replace函数详解

    事情的起因是下午遇到了 preg_replace 函数,我们都知道 preg_replace 函数可能会导致命令执行。现在我们来一些情况。 0x02 经过 踩坑1: 测试代码大概是这样的: foreach ($_GET as $regex => $value) { preg_...

    eregi_replace与preg_replace 函数代码的用法比较

    在`preg_replace`函数中,逆向引用是指对之前在正则表达式中捕获的分组进行引用。逆向引用有两种形式: - **形式**:`\n`,其中`n`是从1到99的整数。 - **形式**:`${n}`,从PHP4.0.4开始支持。 ### 五、总结 ...

    php中使用preg_replace函数匹配图片并加上链接的方法

    与`str_replace()`函数相比,`preg_replace()`可以处理更为复杂的匹配情况,尤其是在进行正则表达式匹配时。 首先需要了解的是,`str_replace()`函数适用于简单的字符串替换任务,它的效率通常高于`preg_replace()`...

    PHP5.2下preg_replace函数的问题

    理解正则表达式的原理和`preg_replace`函数的工作方式,以及适时地使用回调函数,都有助于避免类似的问题并提高代码的性能和稳定性。在日常开发中,我们应养成良好的编程习惯,定期检查和优化代码,确保它们能在不同...

    preg-match绕过

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

    php正则preg_replace_callback函数用法实例

    最后,`preg_replace_callback`函数使用正则表达式`/[\r\n]([a-z0-9]+): ([^\n\r]+)/i`匹配所有键值对,并将匹配项传递给`RewriteText`函数进行处理。处理后的结果将替换原始文本中的匹配部分。 ### 正则表达式解析...

    php小经验:解析preg_match与preg_match_all 函数

    Perl 兼容正则表达式(PCRE)函数是PHP中最常用的正则函数,例如`preg_match()`和`preg_match_all()`。 `preg_match()`函数用于执行单次正则匹配。它的基本语法是: ```php int preg_match(string pattern, string ...

    深入研究PHP中的preg_replace和代码执行

    在PHP中处理字符串和文本数据时,正则表达式是一种强大的工具,其中preg_replace函数是执行替换操作的常用函数之一。 在preg_replace函数中,可以通过/e修饰符将替换字符串视为PHP代码进行执行。这是一种潜在的安全...

    PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)

    在前面我们也说过,基于perl的正则表达式要快于POXIS正则表达式处理函数,所以我们只介绍以preg开头的基于perl的正则表达式。注意:在能偶使用字符串函数处理的时候,就不要使用正则表达式来处理字符串,因为字符串...

    PHP函数preg_match_all正则表达式的基本使用详细解析

    通过这个例子的分析,我们可以了解到,preg_match_all函数结合正则表达式可以非常有效地处理复杂的文本提取任务,只要我们熟悉了相关的语法和函数的使用方式。在实际开发中,我们可以根据需要提取的信息调整正则...

Global site tag (gtag.js) - Google Analytics