как разделить по буквам с последующим периодом? - PullRequest
1 голос
/ 08 марта 2010

Я хочу разделить текст по правилу буква за периодом. Итак, я делаю это:

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

Тогда я получаю это:

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

Но мне нужно, чтобы это было так:

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

Как решить вопрос?

Ответы [ 3 ]

2 голосов
/ 08 марта 2010

Его разбиение на буквы и точки. Если вы хотите проверить, чтобы убедиться, что перед точкой стоит буква, вам нужно использовать положительный взгляд за утверждением.

$text = 'One two. Three test. And yet another one';
$splitted_text = preg_split("/(?<=\w)\./", $text);
print_r($splitted_text);
2 голосов
/ 08 марта 2010

использование explode выписка

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

Обновление

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

используя "." Оператор explode проверяет также пробел.

Вы можете использовать любой вид разделителей, а также фразу не только один символ

1 голос
/ 08 марта 2010

Использование regex - это излишнее количество, вы можете легко использовать explode Поскольку ответ на основе разнесения уже дан, я дам ответ на основе регулярных выражений:

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

Используется регулярное выражение: \.\s*

  • \. - Точка - это метасимвол. Чтобы соответствовать буквальному совпадению, мы избегаем его.
  • \s* - ноль или более пробелов.

Если вы используете регулярное выражение: \.

У вас будет несколько пробелов в некоторых созданных частях.

...