我有一个短代码,我想根据帖子的上下文去掉它。例如
[tooltip slug="test"]Test Text[/tooltip]
我希望输出为:
<span class="dummy">Test Text</span>
我已经用preg_replace进行了(很多!)实验,如果不进行多次操作,我似乎无法让它识别出替换字符串介于"]"answers"[/tooltip]"之间。
想法?
更新:正如经常发生的那样,在我写下这篇文章大约10秒后,我的一次尝试似乎奏效了。我认为它不如下面的解决方案好,但FWIW。。。
$my_var .= preg_replace('/(?:'[tooltip slug='"([^'"]*)"[^'>]*']([^'<]*)'['/tooltip'])/', '<span class="dummy">''2</span>', $my_post->post_content);
下面是您要查找的简单正则表达式。
$result = preg_replace('%'[tooltip slug="[^"]*"]([^[]*)'[/tooltip]%',
'<span class="dummy">'1</span>', $subject);
我们在这里所做的是捕获工具提示标记之间的文本,并将其插入替换中。如果你需要任何细节,请告诉我。
$test = preg_match('/'[([^']]+)']([^'[]+)'[/', '[tooltip slug="test"]Test Text[/tooltip]', $matches);
echo $matches[2];