【发布时间】:2014-05-17 14:46:35
【问题描述】:
我正在寻找执行此操作的最佳方法...是否存在一些方便的正则表达式?或者我应该以某种方式逐节循环播放它?
好吧,我有这么一句话:
"The rooms rooms and rooms again were great, the food was not but the beds were extremely comfortable."
我有一个项目数组(分隔符):
array('food','room','bed');
如果可以理解的话,我想以某种方式神奇地获得这些单词之间的句子部分......就像将它分割(从一个分隔符到另一个分隔符)......
第一节:
"The"
第二部分(直到数组中最近的项目(分隔符):
"rooms "
第三部分:
"rooms and "
第四节:
"rooms again were great, the"
还有第五部分:
"food was not but the ".
第四节:
"beds were extremely comfortable."
基本上将句子从一个关键字重复拆分到另一个关键字。
分隔符的意义在于分割句子......所以只需匹配它......如果句子中有一个单词“rooms”,它匹配分隔符“room”。复数不重要,关键是根据分隔符(数组中的项目)将句子分成多个部分。
有什么想法吗?
【问题讨论】:
-
数组是否总是两个单词,或者可能更多?
-
迈克尔还有更多的话。
-
如果有3个或更多,如何分隔?现在,您拥有直到第一个单词(包括第一个单词)、介于两者之间的所有内容以及从第二个单词开始到结尾的所有内容。如果有第三个,它会匹配它的开头还是结尾?请发布一个使用 3 个单词会发生什么情况的示例。
-
“房间”这个词中的 s 怎么样?您在原始句子中有它,但在示例和分隔符数组中没有
-
Michael 和 Marcin 感谢您的关注。请更新我的问题。