【发布时间】:2011-11-24 12:16:12
【问题描述】:
我对 RegEx 几乎一无所知,即使在阅读了一些教程之后:\ 我基本上只是想知道如何用标签替换标签 - 那么如何匹配标签以及如何声明要替换它,保持标签文本不变?我在替换字符串中看到了关于 $1 的内容,但我不知道它指的是什么?
尽可能深入,我是新手,需要帮助!
【问题讨论】:
-
抱歉,如果这是重复的,我确实进行了搜索,但我找到的东西并没有完全涵盖它!
我对 RegEx 几乎一无所知,即使在阅读了一些教程之后:\ 我基本上只是想知道如何用标签替换标签 - 那么如何匹配标签以及如何声明要替换它,保持标签文本不变?我在替换字符串中看到了关于 $1 的内容,但我不知道它指的是什么?
尽可能深入,我是新手,需要帮助!
【问题讨论】:
这是一个非常简单的例子:
$regex = '~
<b> #match opening <b> tag
(.*?) #match anything in between
</b> #match closing </b> tag
~six';
preg_replace($regex, '<i>$1</i>', $input);
在此示例中,正则表达式匹配标签内的开始 B 标记内容和结束 B 标记。以下模式 (.*?) 将内容单独分组,以便您以后可以像 $1 一样引用它。
如果我们通过添加更多分组括号来稍微修改表达式:
$regex = '~
(<b>) #match opening <b> tag
(.*?) #match anything in between
(</b>) #match closing </b> tag
~six';
preg_replace($regex, '<i>$2</i>', $input);
替换部分将从 $1 更改为 $2,就我们所指的三个组而言 (.*?) 和 $2 因为它是第二组等等...
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
【讨论】:
~和~six和结尾?
我建议你看一些教程视频,因为阅读它们显然没有帮助,我可以想象回答如何用<I> 替换<B> 也无济于事。
这里是 youtube 上的视频教程,例如:Regular Expression Tutorials Part # 1 for PHP - Javascript
【讨论】: