こんにちはみんな、bbcodeのために私の正規表現を整理しようとしています。
私は現在URLのためにこれを持っています:
"/\[url\=\'(.+?)\'\](.+?)\[\/url\]/is",
''にすでに含まれているURLのみを取得しますが、一重引用符で囲まれている場合とされていない場合のURLを確認するにはどうすればよいですか?
パターンの交互、垂直バー(|)を使用する構成を使用できます。
"/\[url\=(\'(.+?)\'|([^'].+?))\](.+?)\[\/url\]/is",
次の正規表現を使用できます。
\[url=(?:'([^']+)'|"([^"]+)")\](.+?)\[\/url\]
一重引用符、二重引用符、および引用符で区切られていない URL 値を受け入れます。欠点は、URL 属性値を取得するために複数のキャプチャ グループをチェックする必要があることです。
キャプチャ グループは次のとおりです。
URL タグの間に角括弧を使用できない場合は、代わりに次の正規表現を使用できます。この場合、より迅速に一致が検出されます。
\[url=(?:'([^']+)'|"([^"]+)")\]([^\[]+)\[\/url\]