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