PHP preg_replace() 只保留大写单词

发布于 2024-10-19 18:20:44 字数 646 浏览 6 评论 0原文

如何使用 preg_replace 仅保留大写字母、数字、特殊字符或首字母大写但包含不超过 3 个字符的单词。

例如:

Portocjnk Karaer HDS-C 7/11、9/15、8/15-E => HDS-C 7/11、9/15、8/15-E

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 MW 31AY97KV643 => YM 84 MW 31AY97KV643

(塔塔塔)(塔塔塔)Yard-Man YM 84 MW 31AY97KV643 => YM 84 MW 31AY97KV643

提前致谢。

How can I leave only words in uppercase, digits, special characters, or words where the first letter in uppercase, but it contains no more than 3 characters, with preg_replace.

For example:

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

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

渡你暖光 2024-10-26 18:20:44
preg_replace('|\b([A-Z][a-z][a-z][a-z][a-z\-]*)\b|','',$text);

这个适用于你的大部分示例

preg_replace('|\b([A-Z][a-z][a-z][a-z][a-z\-]*)\b|','',$text);

this one would work with most of your example

雄赳赳气昂昂 2024-10-26 18:20:44

这将是一种简单化的白名单方法。这将首先提取所需的部分,而不是 preg_replacing。之后 $result 数组需要重新合并。

preg_match_all('#\b[A-Z\d][A-Z\d/,-]*\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 获取一些可能有助于设计正则表达式的好工具。

This would be a simplistic whitelist approach. Instead of preg_replacing this will first extract the desired parts. And afterwards the $result array needs to be remerged.

preg_match_all('#\b[A-Z\d][A-Z\d/,-]*\b|\b(?<!-)[A-Z][a-z]{1,2}\b#', $str, $result);
$result = implode(" ", $result[0]);

You might need to add some more of the "special" characters in the second [...] character class.

Check out https://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world for some nice tools that might help in designing regular expression.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文