문자열의 일부분에서만 개행을 바꾸려고합니다. 다음 내가 가진 가정 :문자열 부분에 개행 바꾸기
foo bar __level [
$save = 123,
Info = '1234'
]
{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur.}
내가 이것 저것을 대체 할 : 그것은 {
문자를 볼 때까지
foo bar __level [$save = 123,Info = '1234']
{Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur.}
그래서 기본적으로 줄 바꿈을 제거해야합니다. 나머지는 줄 바꿈을 유지해야합니다.
\s+
을 사용하여 모든 줄 바꿈을 preg_replace
으로 바꿀 수 있다는 것을 알고 있습니다. 그러나 나는 문자열의 작은 부분을 대체하기 때문에이 경우 어떻게하는지 잘 모릅니다.
이렇게하려면 preg_replace
으로 어떻게 할 수 있습니까?
$pattern = '~(?:\[|(?!\A)\G)[^]\r\n]*\K\R+~';
$txt = preg_replace($pattern, '', $txt);
패턴 세부 사항 : 모든 대괄호가 중첩 균형 아니라는 것을 가정
'\ s'가 아니라 개행 문자, 공백 문자와 일치합니다. – faintsignal
@faintsignal 그렇다. 그렇다면 replace는'preg_replace ('# \ s + #', '', $ str);'형식으로 될 것이다. 그래서 그것은 그 공간을 유지할 것입니다. – Vivendi