Есть регулярка
https://regex101.com/r/DOYzGI/1/
Нужно emi обрамить тегом <i>
, а mise тегом <u>
Вариант 1: Работает но не так как надо
http://sandbox.onlinephpfunctions.com/code/0f15f2705fe55b9fe643314124da18042079a2b7
Работает с ошибкой. В замене "SS$1YY"
приклеивается к переменной
Вариант 2: Ошибка http://sandbox.onlinephpfunctions.com/code/0252eb0d4eae114b7e454e99b3e31e76a1502b29
Parse error: syntax error, unexpected '1' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' in [...][...] on line 2
Я поменял "SS$1YY"
на "SS{$1}YY"
но так вроде всегда можно было, почему сейчас не работает?
Проверяйте подстроку emi
таким образом, что бы ни слева ни справа от неё не было символа s. Иначе говоря, нужно исключить из поиска в подстроке emi
те позиции, которые входят в подстроку mise
:
$string = 'hemidemisemiquaver';
$pattern = '~(?<!s)(emi)(?!s)|(mise)~';
$replace = '<i>$1</i><u>$2</u>';
echo preg_replace($pattern, $replace, $string);
Результат:
h<i>emi</i><u></u>de<i></i><u>mise</u>miquaver
Но preg_replace() для этой задачи не подходит, т.к. в случае отсутствия совпадения во второй подмаске $2
в результирующую подстроку всё равно будет добавлена пара пустых тегов <u></u>
(они ведь жёстко прописаны в строке замены).
Альтернативным вариантом будет preg_replace_callback() -- в теле callback-функции можно добавить условие с проверкой на соответствие для второй подмаски:
$string = 'hemidemisemiquaver';
$pattern = '~(?<!s)(emi)(?!s)|(mise)~';
echo preg_replace_callback($pattern, function ($mch) {
return empty($mch[2]) ? "<i>$mch[1]</i>" : "<u>$mch[2]</u>";
}, $string);
Результат:
h<i>emi</i>de<u>mise</u>miquaver
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не выходит прикрепить изображение к посту в группеПо порядку: определяю путь к пикче, передаем в метод getWallUploadServer айди группы без минуса и токен
Делаю инструмент для удобства работы с неким сторонним сайтом, на одном из этапов столкнулся с проблемой, при авторизации через CURL, на стороннем...
У меня есть скрипт, мне нужно чтоб он срабатывал два раза в деньКак на php написать, чтоб этот скрипт так работал?