gpt4 book ai didi

php - 正则表达式 - 匹配所有具有可选属性的 anchor

转载 作者:可可西里 更新时间:2023-11-01 12:53:55 25 4
gpt4 key购买 nike

我的后端有一个所见即所得的编辑器,它使我编写的第一个正则表达式出错。这是在 PHP4 中,使用 preg_replace()。我正在捕获 URI 和链接文本。

@<a\shref=\"http[s]?://([^\"]*)\"[]>(.*)<\/a>@siU

客户希望所有外部链接在新窗口中打开,所以这就是我用来查找所有(希望)外部链接但保留内部、页面 anchor 链接等的表达式

我意识到如果用户在链接上选择粗体,所见即所得编辑器也会添加 style="font-weight: bold"。我最近才开始学习正则表达式,所以我不确定如何解决这个问题。

我该怎么做?

最佳答案

这应该匹配得很好:

/<a\s+([^>]*)href="https?:\/\/([^"]*)"(.*?)>(.*?)<\/a>/

这里有用的是惰性匹配。 *? 这意味着它只会匹配绝对需要的部分,而不是贪婪的常规匹配。

为了演示,用这个文本:

a b c d a b c d

这些正则表达式会有不同的结果:

/a.*c/    selects: "a b c d a b c"
/a.*?c/ selects: "a b c"

关于php - 正则表达式 - 匹配所有具有可选属性的 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/238891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com