У меня есть строка, форматированная символами (символами, аналогичными тем, которые используются для форматирования вопросов на этом сайте).Заменить символы в строке, зависящей от вхождения. PHP
Правила:
** Hello ** означает полужирный = < б> Здравствуйте </б>
* Hello \\ означает маркированный список = < литий> Здравствуйте </li>
Здравствуйте \\ означает разрыв линии = Hello < бр>
Я хочу заменить:
- Каждый первое вхождение ** с < Ь> и каждый второй ** с </b>.
- То же самое для * с < li> и \\ с </li>.
- Все \\, которые встречаются без * где-то в строке перед, должны быть преобразованы в < br>.
Пример строки:
$myString = 'Hello my **Friend**,\\here is the stuff you need to buy for me:*knife\\*water bottle\\***fake ID**\\\\\\Thank you in advance and don not forget the **fake ID**!\\Sincerely yours\\Eddy'
Примечание: Этот стиль не мое изобретение. Он используется, и я должен его преобразовать.
I preg_match() - его части, чтобы получить материал между тегами.
$myString = 'Hello my **Friend**,\\here is the stuff you need to buy for me:*knife\\*water bottle\\***fake ID**\\\\\\Thank you in advance and don not forget the **fake ID**!\\Sincerely yours\\Eddy';
$result = array();
$firstBold = '<b>'. preg_match('~\*\*(.*?)\*\*~', $myString, $firstBold) . </b>;
$result += $firstBold
// and so on...
(Игнорировать ошибки в этом, его написано из памяти)
Я не считал слова перед первым смелым, но это в основном то же самое. Это закончит работу, но мне кажется громоздкой. Я ищу более элегантный способ сделать это.
Каков наилучший способ решить эту проблему на PHP?
'$ туЗЬптд = $ туЗЬптд = ...' Я полагаю, что это ошибка? – Bijan
О, да, действительно. Изменено. Спасибо! – Allinternal