在WordPress短码标记之间替换PHP regex

2022-03-22 00:00:00 regex php preg-replace

我有一个短码,我希望能够根据帖子的上下文剥离它。

[tooltip slug="test"]Test Text[/tooltip]

我希望输出为:

<span class="dummy">Test Text</span>

我试验过(很多次!)WITH PRIG_REPLACE,我似乎无法让它识别替换字符串位于‘]’之间,然后在不执行多次遍历的情况下由‘[/TOOLTIP]’分隔。

想法?

更新:就像经常发生的那样,在我写下这篇文章大约10秒后,我的一次尝试似乎奏效了。我认为它不如下面的解决方案好,但我想...

$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);

我们在这里所做的是捕获工具提示标记之间的文本,并将其插入到替换中。 如果您需要任何详细信息,请告诉我。

相关文章