johnrcornell Posted May 27, 2007 Share Posted May 27, 2007 Hi Guys! I'm hoping one of you smart cookies out there understands regex better than I do. $street2 = "Unit 1 A"; $street2 = preg_replace('/(?<=(?:Unit|Apt)\s.)\s/','',$street2); I expect $street2 to now equal, "Unit 1A" Instead, I get, "Warning: preg_replace() [function.preg-replace]: Compilation failed: lookbehind assertion is not fixed length at offset 19" I barely got the regex where it's at, I cannot figure out where to apply * here in order to give me an arbitrary lookbehind length. Since the target could be: Apt 1 A Apt 23 A Unit 1 A Unit 23 A Unit 234 BF etc Any ideas anyone? Quote Link to comment Share on other sites More sharing options...
Wildbug Posted May 29, 2007 Share Posted May 29, 2007 Read the PCRE Syntax section of the manual, the Assertions section ('bout halfway down), third paragraph. Lookbehinds must be fixed length. If you're just removing the space, why don't you do something like: preg_replace('/((?:Unit|Apt)\s\d+)\s+(\w+)/','$1$2',$street2); Quote Link to comment 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.