PHP: разбить предложение по запятым, за исключением параллельных структур - PullRequest
0 голосов
/ 07 октября 2011

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

Например, с учетом этих предложений (http://owl.english.purdue.edu/owl/resource/623/01/):

Мэри любит поход,плавать и ездить на велосипеде.

Мэри любит путешествовать пешком, плавать и ездить на велосипеде.

Я бы разделил их только по первой запятой, чтобы получить:

sentence_array ( "Mary likes to hike", "swim, and ride a bicycle")

Возможно, с помощью регулярного выражения, проверяющего по крайней мере 2-3 пробела, не окруженных запятой?

Ответы [ 3 ]

2 голосов
/ 07 октября 2011

Может быть, что-то вроде этого может работать:

<?php

$str = "Mary likes to hike, to swim, and to ride a bicycle, also, something more at the end.";
var_dump($str);

$str = preg_replace('/((\s\w*){3,},)/', '\1*', $str);
$str = explode('*', $str);

var_dump($str);
?>

Это должно работать на чем-то вроде использования чего-то более уникального, чем просто *

0 голосов
/ 07 октября 2011

использование explode(separator,string,limit)

или

split ( string $pattern , string $string [, int $limit = -1 ] )

0 голосов
/ 07 октября 2011

Мне трудно понять, чего на самом деле ты хочешь?Будет ли взрываться (',', 'Мэри любит ходить в походы, плавать и ездить на велосипеде', 2) работать?отсюда 2 там (предел) Или вы хотите взорваться с помощью ','?

...