我有一个字符串数组,让我们说它们是文件名,看起来像这样
$filenames = [
"Index",
"ACME Corp - Services",
"Products - ACME Corp",
"Contact Us - ACME Corp",
"History - ACME Corp - The greatest producer of ACME widgets!"
];
假设我无法控制这些。
我将如何编写一个
的算法ACME Corp
是一个常见的子字符串,但是没有出现在所有字符串中 ACME Corp
文件名(它可以留下破折号和空格)我无法绕过第一步 - 如何遍历此数组并找到共享子字符串?
更新:只是为了解决一些评论,它会有字边界并且不区分大小写,因此ACME Corp
和acme corp
是可接受的匹配,但匹配的任何内容一个单词中的那种模式不会。
答案 0 :(得分:2)
在不知道你遇到什么问题的情况下,我试图解决这个问题。您可以按空间分解数组中的每个字符串,并捕获字符串出现在数组中的出现次数,但这并不能解释短语。搜索引擎是合适的解决方案,但不知道您正在寻找什么术语或短语,它不会对您有所帮助。
爆炸粗略的想法:
$words = array();
foreach ($stringArr as $str) {
$parts = explode(" ", $str);
foreach ($parts as $word) {
$words[$word] += 1;
}
}