В попытках нормализовать текст для нечеткого соответствия Я пытаюсь объединить однословные слова (в основном части инициализма) в одно слово. Номера игнорируются. Ниже, где я в:PHP concat small words in string with preg_replace
$strings = array("CROWN ROYAL X R CANADIAN WHISKEY", "CROWN ROYAL X R", "REMY V S O P 8 0", "BARTON L I I T");
$string = preg_replace('/\b([A-Z]){1}\s([A-Z]){1}\b/', '\1\2', $string);
Результаты:
"CROWN ROYAL XR КАНАДСКИЙ ВИСКИ", "CROWN ROYAL XR", "REMY VS OP 8 0", "BARTON LI IT"
Мне нужны VSOP и LIIT. Я применил обходное решение, сначала используя $string = preg_replace('/\b([A-Z]){1}\s([A-Z]){1}([A-Z]){1}\s([A-Z]){1}\b/', '\1\2\3\4', $string);
, но я уверен, что есть более изящное и менее дорогостоящее решение?