$string = "
put returns between paragraphs
for linebreak add 2 spaces at end
";
문자열에서 모든 새 줄을 제거하고 싶습니다.
나는이 정규식을 가지고 있는데, 그것들을 모두 잡을 수 있습니다. 문제는 내가 어떤 기능을 사용 해야하는지 모르겠다는 것입니다.
/\r\n|\r|\n/
$string
되어야한다 :
$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
답변
이중 줄 바꿈에주의해야합니다. 이렇게하면 이중 공백이 생길 수 있습니다. 이 효율적인 정규 표현식을 사용하십시오.
$string = trim(preg_replace('/\s\s+/', ' ', $string));
여러 공백과 줄 바꿈이 단일 공백으로 바뀝니다.
편집 : 다른 사람들이 지적 했듯이이 솔루션에는 단어 사이에 단일 줄 바꿈이 일치하는 문제가 있습니다. 이 예에는 나와 있지 않지만 상황이 어떻게 발생할 수 있는지 쉽게 알 수 있습니다. 대안은 다음을 수행하는 것입니다.
$string = trim(preg_replace('/\s+/', ' ', $string));
답변
허용 된 답변에 대한 몇 가지 의견 :
+
수단 “1 개 이상”. 반복 할 필요는 없다고 생각합니다 \s
. 나는 당신이 단순히 쓸 수 있다고 생각합니다 '/\s+/'
.
또한 문자열에서 공백을 먼저 제거하고 마지막으로 제거하려면을 추가하십시오 trim
.
이러한 수정으로 코드는 다음과 같습니다.
$string = preg_replace('/\s+/', ' ', trim($string));
답변
그냥 사용 preg_replace()
$string = preg_replace('~[\r\n]+~', '', $string);
str_replace()
코드가 깨끗해 보이지는 않지만이 문제를 해결할 수 있습니다 .
$string = str_replace(array("\n", "\r"), '', $string);
이데 오네에서 생방송보기
답변
$string = str_replace(array("\n", "\r"), ' ', $string);
답변
속도와 배열에 큰 따옴표를 사용하려면 str_replace를 사용해야합니다
str_replace(array("\r\n","\r"),"",$string);
답변
이것이 이미 제출 된 답변에 대해 가치가 있는지 확실하지 않지만 게시 할 수 있습니다.
// Create an array with the values you want to replace
$searches = array("\r", "\n", "\r\n");
// Replace the line breaks with a space
$string = str_replace($searches, " ", $string);
// Replace multiple spaces with one
$output = preg_replace('!\s+!', ' ', $string);
답변
preg_replace를 사용하여 PCRE 정규식 교체를 수행 할 수 있습니다 :
http://php.net/manual/en/function.preg-replace.php
$new_string = preg_replace("/\r\n|\r|\n/", ' ', $old_string);
줄 바꾸기를 바꾸거나 공백으로 문자를 반환합니다. 대체하지 않으려면 두 번째 인수를로 변경하십시오 ''
.