nasıl mektup izledi-dönemi ile bölmek için?

3 Cevap php

Ben mektup-takip-by-dönem kuralı tarafından metni bölmek istiyorum. Yani bunu:

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

Sonra bu olsun:

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

Ama ben böyle olmasını gerekiyor:

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

Meseleyi halletmek için?

3 Cevap

Mektubu ve döneme Onun bölme. Eğer döneminden önceki bir mektup var olduğundan emin olmak için test etmek istiyorsanız, iddianın arkasında olumlu bir görünüm kullanmanız gerekir.

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

Regex kullanarak burada bir overkill, sen explode rahatlıkla kullanabilirsiniz. Bir patlayabilir tabanlı cevabı zaten verir olduğundan, ben bir regex tabanlı bir cevap vereceğim:

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

Regex kullanılır: \.\s*

  • \. - Bir nokta bir meta karakter. Değişmez bir maç maç için bunu kaçarlar.
  • \s* - sıfır veya daha fazla boşluk.

Eğer regex kullanıyorsanız: \.

Oluşturulan bazı parçaları bazı önde gelen boşluklar olacak.