Я хочу иметь возможность выделять определенные части строки жирным шрифтом, используя регулярное выражение в PHP. Если строка содержит текст, **окруженный двумя звездочками**, он должен стать полужирным.
Я использую три примера:
**The quick brown fox jumps over the lazy dog.**
The **quick** brown fox **jumps over** the lazy dog.
**The quick* brown fox jumps over the lazy dog**.
Я пытался:
$string = preg_replace('/\*\*(.+)\*\*/' , "<b>$1</b>" , $string);
Который терпит неудачу на втором, потому что он дает:
The <b>quick** brown fox **jumps over</b> the lazy dog.
Он должен был остановиться после быстрого и снова совпасть в прыжках.
Я также пробовал:
$string = preg_replace('/\*\*([^*]+)\*\*/' , "<b>$1</b>" , $string);
Который работает на втором, но терпит неудачу на третьем, вообще ничего не совпадая.
Я действительно хочу что-то вроде этого:
$string = preg_replace('/\*\*([^*{2}]+)\*\*/' , "<b>$1</b>" , $string);
Но я знаю, что это правильно. Я думаю, что мне следует как-то использовать отрицательный прогноз, но я не знаю, как это сделать.
Заранее спасибо.