我试图将遇到大写字母的每个字符放在前面。我实现的是:
$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);
结果:
评分:go
麋鹿控制皮脂的产生评分:平均
避免化妆品中微生物的生长等级:ba
防过敏等级:ba
对细胞分裂有毒
如您所见,它删除了第一个和第二个字符。我需要带。
的全文答案 0 :(得分:1)
您想使用反向引用替换中捕获的内容。第一个捕获组()
是$1
,第二个捕获组是$2
:
$string = preg_replace('/([a-z])([A-Z])/', '$1</br>$2', $str);
答案 1 :(得分:1)
您可以使用环视功能,这会在小写和大写字符之间插入</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