, 나는 PHP preg_replace
기능을 사용할 것이다 당신이 따라 적응할 수 :
$truncated = preg_replace('/^(.{100}.*?\.).*$/s', '$1', $long);
편집 : 나는 구문이 전체 것 등을 치료하는 출력에 대한 강조와 함께 무엇을 모른다 문자열, 그것은 미리보기에서 잘 보인다.
그리고 현명하게하려고합니다 다른 버전 (문장의 끝 부분 이외의 곳을 발생할 수있는 기간 또는 다른 장소) 소수점으로 숫자를 파괴하지 약 :
$truncated = preg_replace('/^(.{100}.*?\.(?![a-z0-9])).*$/s', '$1', $long);
설명 :
- 보관할 부분이 괄호로 묶입니다.
- 당신은 적어도 100 자하겠습니다 :
.{100}
- 그런 다음 첫 번째 소수점까지 모든 다음과 같은 문자를하겠습니다 : 두 번째 버전에서
.*?\.
- , 내가 부정적인 lookahead-
(?![a-z0-9])
을 사용 - 어떤 것 마침표 뒤에 숫자 나 문자가 오는 경우 마지막 부분을 다음 소수점 자리까지 계속하십시오.
- 점은 개행 문자와 일치합니다 (패턴 끝에있는
s
수식어). Movable Type의 regex_replace
함수가 구분 기호없이 선행 슬래시와 후행 /s
패턴을 취하는 경우 패턴 시작 부분에 (?s)
을 사용할 수 있습니다.
- 첫 번째 캡처 된 그룹을 유지하려면 교체시
$1
을 사용하십시오.