0
我從刪除字符串中的空[url = http://exp.com] [/ url]標記時遇到了一些麻煩。 這是我的,但它是不正確的bcz它也刪除,如果這兩個標籤之間有東西。用php刪除空的BBcode url標記
$desc = preg_replace("#\[url=.*?\][(\W)]?\[/url\]#i", "", $desc);
我從刪除字符串中的空[url = http://exp.com] [/ url]標記時遇到了一些麻煩。 這是我的,但它是不正確的bcz它也刪除,如果這兩個標籤之間有東西。用php刪除空的BBcode url標記
$desc = preg_replace("#\[url=.*?\][(\W)]?\[/url\]#i", "", $desc);
嘗試使用此模式:
$desc = preg_replace('~\[url=[^]]*]\s*+\[/url]~i', '', $desc);
的想法是使用字符類,它不包含右方括號以避免惰性限定符(即:[^]]
)。
\s*+
只允許在開始標籤和結束標籤之間使用白色字符,但如果不需要,可以將其刪除。
請注意,關閉方括號不需要在字符類外面轉義,並且必須在字符類內轉義,除非它是第一個字符。你可以寫[^]a]
或[^a\]]
或[^\]a]
但不[^a]]
被解釋爲所有字符,但隨後a
通過]
我驚訝的是你正在嘗試做的,因爲[url=www.example.com][/url]
代表[url=www.example.com]www.example.com[/url]
工作!豎起大拇指! – Edison