我目前正试图从BBCode获取一个URL。有它四种可能性,这就是我目前的问题:URL-BBCode正则表达式
[url]http://stackoverflow.com/[/url]
[url='http://stackoverflow.com/']http://stackoverflow.com/[/url]
[url="http://stackoverflow.com/"]http://stackoverflow.com/[/url]
[url=http://stackoverflow.com/]http://stackoverflow.com/[/url]
我两者都需要。这是,我至今:
/\[url(?:\=\'([^\'"]+)\')?](.+?)\[\/url]/i
但这只是个案工作1 & 2.
编辑:
这工作得更好:
/\[url(?:\=(?:[\"|'])?(.*)(?:[^[]+)?)?\](.*)\[\/url\]/i
但仍不完美。
编辑:
我想,我明白了。这可能需要一些优化,但它似乎工作:
/\[url(?:\=("|\'|)?(.*)?\1)?\](.*)\[\/url\]/i
[REGEX for bbcode links + non-bbcode URLs]的可能重复(http://stackoverflow.com/questions/17151716/regex-for-bbcode-links-non-bbcode-urls) – PeeHaa
不完全,但接近 – user2557188