PHP </br>, где строчные буквы встречаются заглавными буквами - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь поставить перед каждым символом, который встречается с заглавной буквы. То, что я достиг:

$str =  "Rating: goodHelps control sebum production Rating: averagePrevents the development of microorganisms in cosmetics Rating: badCan be allergenic Rating: badToxic to cell division"; 
$string = preg_replace('/([a-z])([A-Z])/', "</br>", $str);

print_R($string);

Результат:

Рейтинг: goo

Производство кожного сала ELPS Control Рейтинг: Averag

препятствует развитию микроорганизмов в косметике. Рейтинг: ba

аллергический рейтинг: ба

ядовито для деления клеток

Он удаляет первый и последующий символ, как вы можете видеть. Мне нужен полный текст с.

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Вы можете использовать lookaround, это вставит </br> между строчными и прописными буквами.

$str =  "Rating: goodHelps control sebum production Rating: averagePrevents the development of microorganisms in cosmetics Rating: badCan be allergenic Rating: badToxic to cell division"; 
echo preg_replace('/(?<=[a-z])(?=[A-Z])/', "</br>", $str);

Выход:

Rating: good</br>Helps control sebum production Rating: average</br>Prevents the development of microorganisms in cosmetics Rating: bad</br>Can be allergenic Rating: bad</br>Toxic to cell division
1 голос
/ 19 апреля 2019

Вы хотите использовать обратные ссылки на то, что вы захватили в замене.Первая группа захвата () равна $1, а вторая - $2:

$string = preg_replace('/([a-z])([A-Z])/', '$1</br>$2', $str);
...