2010-03-08 3 views
1

레터 별 피리어드 규칙에 따라 텍스트를 분할하고 싶습니다. 그래서 나는이 작업을 수행 :글자 단위로 나누는 방법은 무엇입니까?

Array ([0] => One tw [1] => Three tes [2] => And yet another one) 

하지만 그것을 필요합니까이 이렇게 될 :

Array ([0] => One two [1] => Three test [2] => And yet another one) 

어떻게 문제를 해결하기 위해

$text = 'One two. Three test. And yet another one'; 
$splitted_text = preg_split("/\w\./", $text); 
print_r($splitted_text); 

가 그럼 난이 얻을?

답변

2

사용 explode 문 사용

$text = 'One two. Three test. And yet another one'; 
$splitted_text = explode(".", $text); 
print_r($splitted_text); 

업데이트

$splitted_text = explode(". ", $text); 

"."또한 explode 문 검사의 공간.

당신은 또한 구분 기호의 모든 종류의 문구 정규식을 사용하여 잔인한가 여기에있다

+0

은이 경우 구분 기호 "."를 사용하여 공백을 없애고 싶을 수 있습니다. 이. – badideas

1

아닌 단 하나의 문자를 사용할 수 있습니다, 당신은 쉽게 explode를 사용할 수 있습니다. 폭발을 기반으로 답변을 줄 이미되어 있기 때문에, 나는 정규식을 기반으로 대답을 줄 것이다 :

$splitted_text = preg_split("/\.\s*/", $text); 

정규식 사용 : \.\s*

  • \.을 - 도트는 메타 문자입니다. 문자 그대로의 일치를 맞추기 위해 우리는 그것을 벗어납니다.
  • \s* - 0 이상의 공백 \.

    당신이 만든 작품의 일부에 일부 선행 공백이있을 것이다 : 당신이 정규식을 사용하는 경우

.

2

글자와 마침표에서 분열. 마침표 앞에 글자가 있는지 확인하기 위해 테스트하려면 긍정적 인 표정을 사용해야합니다.

$text = 'One two. Three test. And yet another one'; 
$splitted_text = preg_split("/(?<=\w)\./", $text); 
print_r($splitted_text); 
관련 문제