【发布时间】:2013-07-04 16:27:54
【问题描述】:
我目前正在尝试从 BBCode 获取 URL。有四种可能,这是我目前的问题:
[url]http://*.com/[/url]
[url='http://*.com/']http://*.com/[/url]
[url="http://*.com/"]http://*.com/[/url]
[url=http://*.com/]http://*.com/[/url]
两个都需要。这就是我目前所拥有的:
/\[url(?:\=\'([^\'"]+)\')?](.+?)\[\/url]/i
但这仅适用于案例 1 和 2。
编辑:
这样效果更好:
/\[url(?:\=(?:[\"|'])?(.*)(?:[^[]+)?)?\](.*)\[\/url\]/i
但仍然不完美。
编辑:
我猜,我明白了。它可能需要一些优化,但它似乎工作:
/\[url(?:\=("|\'|)?(.*)?\1)?\](.*)\[\/url\]/i
【问题讨论】:
-
不完全是,但很接近