У меня есть текстовый файл так
{word} definition
{another word} another definition {word} they don't have to be on different lines
Регулярное выражение, которое я использовал, было
$regex = '/\{([a-z]+?)\}(.+?)\{/i';
Это, однако, вызывает проблемы в том, что он глотает последнюю фигурную скобку {, и тогда он не будет соответствовать следующей {в следующем слове.
Чтобы продемонстрировать, я сделал это для целей отладки
echo preg_replace($regex, '<b style="background-color: red;">$1</b><b style="background-color: yellow;">$2</b>', $content);
Вот пример моего вывода (обратите внимание, что в следующем слове нет открывающей скобки, поэтому в регулярном выражении она не совпадает)
<b style="background-color: red;">shrub</b><b style="background-color: yellow;"> Multi stemmed woody plant</b>Abaxial} side or face away from the axis
Как я могу изменить свое регулярное выражение, чтобы заставить это работать? Спасибо
EDIT
Большое спасибо за ваши ответы. Я изменил свое регулярное выражение следующим образом
$regex = '/\{([a-z\-\s]+?)\}([^\{]+)/i';
Я также загляну в предварительные статьи.