現在、BBCode から URL を取得しようとしています。それには4つの可能性があり、それが私の現在の問題です:
[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
正規表現テスターを参照