Еще один способ глубокого копирования объекта с помощью getter & setter
с использованием следующего метода lodash clonedeep()
import * as cloneDeep from 'lodash/cloneDeep';
...
let foo = cloneDeep(bar);
Надеюсь, это поможет!
Наконец управляемый для получения его, preg потребностей, таким образом, Вы используете версию PCRE в php и также нуждаетесь в \n\n замещающей строке для не стирания всех окончаний строки, но один:
$body = preg_replace("/\n\n+/", "\n\n", $body);
Спасибо за получение меня на правильном пути.
function str_squeeze($body) {
return preg_replace("/\n\n+/", "\n\n", $body);
}
На каком количестве текста необходимо сделать это? Если это - меньше, чем о 100k затем, Вы могли бы, вероятно, просто использовать простой поиск и заменить regex (ищущий что-то как /\n+/
и замена \n
)
С другой стороны, если необходимо пройти мегабайты данных, затем Вы могли бы проанализировать текстовый символ символом, копируя вход в вывод, кроме тех случаев, когда с mulitple новыми строками встречаются, в этом случае Вы просто скопировали бы одну новую строку и проигнорировали бы остальных.
Я не рекомендовал бы рекурсивную строковую замену, хотя, кажется, что это было бы очень очень медленно.
Чтобы рассмотреть все три последовательности разрыва строки:
preg_replace('/(?:\r\n|[\r\n]){2,}/', "\n\n", $str)
Следующее регулярное выражение должно удалить несколько разрывов строки при игнорировании однострочных повреждений, которые являются хорошо по определению:
ereg_replace("\n\n+", "\n\n", $string);
Можно протестировать его с этим инструментом тестирования Регулярного выражения PHP, который очень удобен (но поскольку это кажется не в идеальной четности с PHP).
[РЕДАКТИРОВАНИЕ], Фиксированное 'к", поскольку они, казалось, не работали. Должны признать, что я просто протестировал regex в веб-инструменте.;)