2012-08-26 5 views
1

PHP regexp를 간단한 방법으로 사용하면 단어 뒤에 나오는 마침표 다음에 마침표 뒤에 1.00과 같은 숫자가 오는 뒤에는 공백을 추가하도록 문자열을 수정할 수 있습니까? 또한regexp는 마침표 뒤에 공백을 추가하지만 마침표는 십진수 또는 문자 약어를 나타내지 않습니까?

String. Looks like this. With an amount of 1.00 and references N.Y. 

이 ...

물론 문자열 내에서 여러 인스턴스를 허용한다 ... 그것은에 변경이 같은 뉴욕으로

String.Looks like this.With an amount of 1.00 and references N.Y. 

요구를 단일 문자 약어를 무시합니다

답변

3
$text = preg_replace('/(\.)([[:alpha:]]{2,})/', '$1 $2', $text); 
이 정규식 사용할 수 있습니다
+0

적합합니다. 감사. –

1

:

/((?<=[A-Za-z0-9])\.(?=[A-Za-z]{2})|(?<=[A-Za-z]{2})\.(?=[A-Za-z0-9]))/ 

대체 문자열은 '. '입니다.

위의 정규 표현식은 전체 정지 부분의 한쪽에 알파벳 문자가 하나 이상 있어야하며 다른쪽에 영숫자 문자가 있어야합니다.

테스트 문자열 :

"String.Looks like this.With an amount of 1.00 and references N.Y.Mr.NoOne.30% replaced.no 50.Don't know." 

출력 :

"String. Looks like this. With an amount of 1.00 and references N.Y. Mr. NoOne. 30% replaced. no 50. Don't know."