Вопрос

Поэтому я некоторое время не сделал никаких регенсов, поэтому я подумал, что буду почистить мою память. Я пытаюсь преобразовать строку, как a*b*c в a<b>b</b>c. Отказ Я уже получил эту работу, но теперь я хочу держать строку, как a\*b\*c от включения a\<b>b\</b>c, а скорее, в a*b*c. Отказ Вот код, который я использую сейчас:

     $string = preg_replace("/\*([\s\S]*?)\*/", "<b>$1</b>", $input);

Я пытался положить это \\\\{0} в перед звездочками, и это не сработало. Не сделал [^\\\\].

Это было полезно?

Решение

Попробуйте отрицательный взгляд:

"/(?<!\\\\)\*([\s\S]*?)(?<!\\\\)\*/"

Это только соответствует * Если он не предшествует \.

Это хрупко, хотя; Это также не удастся, если строка escaped backslash \\*bold* text.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top