请教该如何用正则替换a标签

请教该如何用正则把a标签的 < " >换成@ # $,而不影响a href的链接和其他标签
不允许单独把a标签提取出来替换

<div>
    <div class="bt">2222</div>
    <ul>
        <li>1</li>
        <li>2</li>
    </ul>
    <a href="https://segmentfault.com">ok</a>
</div>

结果:

    <div>
        <div class="bt">2222</div>
        <ul>
            <li>1</li>
            <li>2</li>
        </ul>
        @a href=# https://segmentfault.com # $ ok @/a$
        @a href=# https://segmentfault.com # $ acb @/a$
        @a href=# https://segmentfault.com # $ 123 @/a$
    </div>
阅读 2.3k
1 个回答
$s='<div>
    <div class="bt">2222</div>
    <ul>
        <li>1</li>
        <li>2</li>
    </ul>
    <a href="https://segmentfault.com">ok</a>
    <a href="#">fdfds
    </a>
</div>';

$s = preg_replace('/<a([\s\S]*?)href="([\s\S]*?)"([\s\S]*?)>([\s\S]*?)<\/a>/', '@a${1}href=#${2}#${3}\$${4}@\/a\$', $s);

应该是这样,如果需要空格,你看情况加到合适的地方就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题