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. 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); Link to comment https://forums.phpfreaks.com/topic/229011-preg_replace-with-exclusions/#findComment-1180329 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.