PHP使用preg_replace连接字符串中的小字

时间:2015-04-26 18:22:12

标签: php preg-replace normalization string-matching text-normalization

在努力规范模糊匹配的文本时,我试图将单个字母单词(大多数是初始主义的一部分)组合成一个单词。数字被忽略。以下是我所在的地方:

$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 CANADIAN WHISKEY”,“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);实现了一种解决方法,但我确信有更优雅且成本更低的解决方案?

1 个答案:

答案 0 :(得分:-1)

检查这个

$strings = preg_replace('~(?<=\b[A-Z])\s+(?=[A-Z]\b)~', '', $strings);