【问题标题】:How to ignore first match in this regex如何忽略此正则表达式中的第一个匹配项
【发布时间】:2011-11-19 10:59:06
【问题描述】:
$tag = 'img';
$text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text);

如何让 preg_replace 忽略第一个匹配项(“img”),只替换其他匹配项?

【问题讨论】:

标签: php regex string


【解决方案1】:

您可以使用 for() 循环并将 $i 设置为 1 以避免数组中的第一个值,例如:

 for($i = 1; $tags < count($tags) ; $i++){
 $text = preg_replace('#</?'.$tag.'[^>]*>#is', '', $text[$i]);
 }

但是这个循环每次执行时都会替换$text值,如果你想将它保存为字符串,用.=替换=符号,或者如果你想创建一个数组,用@987654326替换$text @

请注意,此代码未经测试!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多