【发布时间】:2019-05-12 23:32:37
【问题描述】:
我想删除重复项,如果这些重复项的长度超过 4 个字符。
我们怎样才能做到这一点?我当前的代码也删除了重复的 - 值。
代码:
$seoproducttitle = 'HP Chromebook Chromebook 11 G5 EE - 11.6 inch - Intel® Celeron® - 4LT18EA#ABH';
$productnamestring = $seoproducttitle;
$findseo = array('/\h+inch (?:(i[357])-\w+|\h+\w+)?/', '/(\w+)#\w+/');
$replaceseo = array('" $1', '$1');
$productnamingseo = preg_replace($findseo, $replaceseo, $productnamestring);
echo implode(' ', array_unique(explode(' ', $productnamingseo)));
这输出:HP Chromebook 11 G5 EE - 11.6" Intel® Celeron® 4LT18EA
它应该输出:HP Chromebook 11 G5 EE - 11.6" - Intel® Celeron® - 4LT18EA
或者:Apple MacBook Air MacBook Air - 13.3 英寸 - Intel Core i5-8e - MRE82N/A
应该是:Apple MacBook Air - 13.3 英寸 - Intel Core i5-8e - MRE82N/A
示例:http://sandbox.onlinephpfunctions.com/code/5bcaaf47ca97d6dee359802f2d71c2d889c0d091
【问题讨论】:
-
这有点令人困惑。复制什么?您能否提供一些示例输入/预期输出?
-
@FrankerZ 在这种情况下,字符串的值是“Chromebook”的两倍。当重复的长度超过 4 个字符时,我想删除所有重复的值。所以在上面的字符串中它应该只删除 1 'Chromebook'。但它不应该删除重复的“-”符号。
-
请使用这些示例/说明编辑您的原始问题。
-
@FrankerZ 我编辑了问题,另见示例。
标签: php regex duplicates