Preg replace 使用php删除空BBcode url标记
我在删除空[url]时遇到一些问题=http://exp.com]字符串中的[/url]标记。 这是我所拥有的,但它是不正确的,因为如果这两个标签之间有什么东西,它也会删除bczPreg replace 使用php删除空BBcode url标记,preg-replace,Preg Replace,我在删除空[url]时遇到一些问题=http://exp.com]字符串中的[/url]标记。 这是我所拥有的,但它是不正确的,因为如果这两个标签之间有什么东西,它也会删除bcz $desc = preg_replace("#\[url=.*?\][(\W)]?\[/url\]#i", "", $desc); 尝试以下模式: $desc = preg_replace('~\[url=[^]]*]\s*+\[/url]~i', '', $desc); 其思想是避免使用不包含右方括号的字符类(即
$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]