PHP preg_replace()只保留大写的单词

如何只使用大写,数字,特殊字符或单词,其中第一个字母为大写,但包含不超过3个字符,使用preg_replace。 例如: Portocjnk Karaer HDS-C 7 / 11,9 / 15,8 / 15-E => HDS-C 7 / 11,9 / 15,8 / 15-E Karcher Karcher B 140 R Bp => B 140 R Bp Karcher Karcher B 140 R Bsp Trr => B 140 R Bsp Trr Tatata Tatat Yard-Man YM 84 M-W 31AY97KV643 => YM 84 M-W 31AY97KV643 (Tatata)(Tatat)Yard-Man YM 84 M-W 31AY97KV643 => YM 84 M-W 31AY97KV643 提前致谢。     
已邀请:
preg_replace('|b([A-Z][a-z][a-z][a-z][a-z-]*)b|','',$text);
这个可以适用于你的大多数例子     
这将是一种简单的白名单方法。而不是preg_replacing,这将首先提取所需的部分。之后$ result数组需要重新合并。
preg_match_all('#b[A-Zd][A-Zd/,-]*b|b(?<!-)[A-Z][a-z]{1,2}b#', $str, $result);
$result = implode(" ", $result[0]);
您可能需要在第二个
[...]
字符类中添加更多“特殊”字符。 查看https://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world,了解一些可能有助于设计正则表达式的好工具。     

要回复问题请先登录注册