Добрый день!
Есть текст вида:
<p>Привет, Мир! Мы [bar]прибыли[/bar] в это [bar]место[/bar] не зря!
[bar]Привет, Мир![/bar]</p>
[bar]Привет, Мир!
Привет, Мир![/bar]
[bar]Привет, Мир![/bar]
Необходимо на лету обработать все отдельно стоящие шорткоды [bar]...[/bar]. То есть те, которые находятся не в составе предложения (не внутри какого-либо тега, а отдельно стоящие).
Для такой функции:
if ( preg_match( "/^\[bar\][\s\S]*?\[\/bar\]$/miu", $content ) ) {
// здесь на лету обрабатываем все отдельно стоящие шорткоды [bar]
} else {
// а здесь все остальные
}
Хотя я и чётко прописал регулярное выражение:
/^\[bar\][\s\S]*?\[\/bar\]$/miu
Но в нём упорно не хочет срабатывать символ конца строки $ и оно загребает все шорткоды.