PHP:除并行结构外,沿逗号拆分句子

PHP:除并行结构外,沿逗号拆分句子,php,text,nlp,sentence,Php,Text,Nlp,Sentence,我想把一个集合沿着逗号分成几个部分,除非它包含平行结构 例如,给定以下句子(http://owl.english.purdue.edu/owl/resource/623/01/): 玛丽喜欢徒步旅行、游泳和骑自行车 玛丽喜欢徒步旅行、游泳和骑自行车 我只会沿着第一个逗号将它们分开,这样我就可以得到: sentence_array ( "Mary likes to hike", "swim, and ride a bicycle") 也许使用前瞻性的正则表达式,检查至少2-3个没有逗号包围的空格

我想把一个集合沿着逗号分成几个部分,除非它包含平行结构

例如,给定以下句子(http://owl.english.purdue.edu/owl/resource/623/01/):

玛丽喜欢徒步旅行、游泳和骑自行车

玛丽喜欢徒步旅行、游泳和骑自行车

我只会沿着第一个逗号将它们分开,这样我就可以得到:

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

也许使用前瞻性的正则表达式,检查至少2-3个没有逗号包围的空格?

我很难理解您真正想要的是什么? “玛丽喜欢远足、游泳和骑自行车”,2)工作?因此,其中有2个(限制) 还是您希望按“,”分解?

使用
分解(分隔符、字符串、限制)


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

也许类似的方法可以工作:

<?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);
?>


它必须使用比单纯的
*

更独特的东西来处理。是的,我想用逗号分割,如果逗号太近,比如在2个单词内,则跳过逗号后的分割。2个单词内的东西需要正则表达式测试它,限制-1不包括分解数组的最后一项,但我想保留它。另外,如果与前一个逗号有一定距离,我只想用逗号分隔,比如说3-4个单词,否则我们有一个并行结构。然后你可以使用just explode(分隔符,字符串)你能给我一个例子,你的输入是什么,你想输出什么吗?thx,在问题描述中有一个。我想我会为此构建一个“向后看”或“向前看”的正则表达式。如果你试图不拆分并行,那么从技术上讲,你不应该完全不拆分它,因为“远足”是并行短语的一部分。