2010-12-16 3 views
2

str_replace("\n\n"); 두 연속 된 새로운 행을 찾으려면 \n하지만 문제는 내가 사용하고있는 텍스트가 균일하지 않습니다. 새로운 라인은 항상 뒤쪽으로 이어지지 않습니다. 여러 개의 공백 또는 탭 (하나를 찾음)으로 구분할 수 있습니다. 정규 표현식을 많이 사용하지는 않겠지 만 여기에 정규 표현식이 필요할 수도 있습니다. 당신이 원하는 모든 두 개의 선이 하나 나누기 교체하는 경우공백으로 구분 된 연속 된 새로운 행을 찾으려면 Regex

$output = preg_replace('/\n\s*\n/s', '', $input); 

답변

4

이 시도해보십시오.

preg_replace("/\n[ \t]*\n/is", "\n", $inputString); 

[ \t]*은 줄 바꿈 사이에 0 개 이상의 공백이나 탭과 일치합니다.

+0

'\ s *'는 Andrew의'[\ t] *'와 기본적으로 동일합니까? – sami

+1

@sami :'\ s '는 "스페이스"문자, 즉 개행, 리터럴 스페이스 또는 탭을 의미합니다. '*'는 0 개 이상을 의미합니다 (가능한 한 많이). 그래서,이 경우 꽤 비슷합니다. 단 두 개 이상의 * 연속 된 개행 문자 (그리고 그 사이의 모든 공백 문자)는 내 것이 일치 할 것입니다. 정확히 원하는지 확실하지 않습니다. – Cameron

1

이것은 아주 간단한 정규식해야한다 :

+0

'[\ t] *' 기본적으로 카메론의'\ s *'와 같은가? – sami

관련 문제