1

私は現在、このコードを持っています:

// turn any url into url bbcode that doesn't have it already - so we can auto link urls- thanks stackoverflow
$URLRegex = '/(?:(?<!(\[\/url\]|\[\/url=))(\s|^))'; // No [url]-tag in front and is start of string, or has whitespace in front
$URLRegex.= '(';                                    // Start capturing URL
$URLRegex.= '(https?|ftps?|ircs?):\/\/';            // Protocol
$URLRegex.= '\S+';                                  // Any non-space character
$URLRegex.= ')';                                    // Stop capturing URL
$URLRegex.= '(?:(?<![[:punct:]])(\s|\.?$))/i';      // Doesn't end with punctuation and is end of string, or has whitespace after

$body = preg_replace($URLRegex,"$2[url=$3]$3[/url]$5", $body);

これは任意の URL を探し、それらを bbcode に変換します (基本的に URL を自動リンクするため)。問題は、末尾に / がある場合、解析されないことです。

誰かがそれを修正する方法を教えてもらえますか? ありがとう!

4

1 に答える 1

2

[[:punct:]]否定後読みの は一致する/ため、一致に含まれません。

[[:punct:]]を、最後の文字にならないようにしたいすべての特定の文字を含む文字クラスに置き換えることができます[.,;!?:\"\'()-]

于 2013-03-14T15:22:06.713 に答える