PHP正则表达式在wordpress短代码标记之间替换


PHP regex replace between wordpress shortcode tag

我有一个短代码,我想根据帖子的上下文去掉它。例如

[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];