В PHP принято рассматривать строки как неизменные. Иногда необходимо изменить строку «на месте».regex - совместить пустое пространство между любыми символами
Мы идем с дополнительным подходом к созданию массива.
Этот массив должен содержать каждую букву из исходной строки.
Для PHP существует функция (str_split). Одна проблема, она не обрабатывает многобайтовые кодировки достаточно хорошо.
Существует также функция mb_split, которая принимает регулярное выражение как входной параметр для последовательности разделителя. Таким образом,
mb_split('.', '123')
возвращает ['', '', '', ''].
НО:
mb_split('', '123')
возвращает [ '123'].
Итак, я считаю, что существует регулярное выражение, которое соответствует пустому пространству между любыми вариациями многобайтовой последовательности символов.
Так что для '123' он должен соответствовать
'1~2', '2~3'
где ~ является фактическим матч. Это так же, как \ b, но ни для чего.
Есть ли регулярное исправление для этого?
У вас есть то, что вам нужно? Это звучит как проблема XY. – chris85
Я делаю работу, где я должен представить самый простой код для группы студентов, готовящихся пройти собеседование по кодированию. Вопрос заключается в разворачивании строк на месте. Существует необходимость в представлении решения с использованием языка PHP. Чтобы продвигать лучшие методы кодирования, мы решили использовать широко используемый подход, чтобы считать строки PHP неизменными. Таким образом, мы не имеем права использовать ограничители символов строки в качестве языковой функции. Мы создаем массив из этой строки и работаем над этим, реверсив его, заменяя элементы, а затем объединяя их с результирующей строкой. Мы не можем использовать сложные решения. – vian
Если он работает как минимум для UTF-8, это уже почти идеальное решение. – vian