我有一段很长的文本$text
,它是正常英语句子的集合(例如博客中的一篇文章)
我有一些保留字母的数组
$reserved=array("L", "N", "C");
例如,我有一系列免费字母
$free=array("A", "E", "I", "O", "U");
如何在此文本中找到所有以$reserved
字母开头的单词的短语,它们的顺序与它们在数组中的顺序相同,但可能有也可能没有单词以$free
数组中的字母开头。
最终预期的正确结果
- 让我们不要作弊(它的 L、N、C 与数组中的顺序相同,
$reserved
并且 U 存在于 $free 数组中) - 失去了我们的海军和我们所有的指挥官(“它的 L、N 和 C 的顺序与
$reserved
阵列中的 O、A、O 的free
排列顺序相同) - 离开挪威冷藏(L、N、C 的顺序与数组中的顺序相同,
$reserved
数组中没有包含字母的单词free
)
结果不正确
- 让我们不要欺骗我们的邻居(找到 L、NC,但发现额外的 N,而
$reserved
数组只有 3 个保留字母) - 让我们不要欺骗我们的朋友(F 不在
$free
or$reserved
数组中) - 来看看我的车(L、N、C 与
$reserved
数组中的顺序不同)
我知道我可以一次一个地遍历单词,然后遍历所有必需的字母表和可选的字母表,但我认为这将是一种非常耗时且效率低下的查找单词的方法。我正在寻找更有效的方法来解决它......也许有一些正则表达式魔法或类似的东西。
你们能给我一些关于我应该用什么方法来解决这个问题的指示吗?
我知道正则表达式、PHP 和 JS,但如果可以用任何语言提出解决方案,我也可以。