DreifGenov Posted February 27, 2011 Share Posted February 27, 2011 Hello Everybody! I'm trying to replace such string: "Karcher HDS-C 7/11, 9/15, 8/15-E" with "HDS-C 7/11, 9/15, 8/15-E". I use this pattern "/[^A-Z0-9\s\.\,\-\/\(\)]/" for preg_replace. And instead of getting "HDS-C 7/11, 9/15, 8/15-E", I'm getting "K HDS-C 7/11, 9/15, 8/15-E" with leading K. So my rule: leave only words (1+ letters) in uppercase, 0-9, special chars; exclude words (2+ letters) that contain lowercase (first letter can be uppercase). More examples (input => output): Karcher B 140 R Bp => B 140 R Bp Yard-Man YM 84 M-W 31AY97KV643 => YM 84 M-W 31AY97KV643 How can I adjust my pattern to get it work? Thanks in advance. Quote Link to comment https://forums.phpfreaks.com/topic/229011-preg_replace-with-exclusions/ Share on other sites More sharing options...
silkfire Posted February 27, 2011 Share Posted February 27, 2011 I think your pattern is far more complex than is necessary. Think logically. All inputs are cut before the first space character? Use that to your advantage! New pattern: ^[^ ]+ In code: $input = preg_replace('#^[^ ]+ #', '', $input); Quote Link to comment https://forums.phpfreaks.com/topic/229011-preg_replace-with-exclusions/#findComment-1180329 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.