Re: REGEX query

From: Date: Sat, 04 Feb 2006 15:58:51 +0000
Subject: Re: REGEX query
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-229873@lists.php.net to get a copy of this message
Thanks for the options David. I think I'll go for the last option as I'm determined to get to grips with REGEX, and your first choice of REGEX won't work for me as the 'RV-6' bit can be too variable with what it contains, whereas the \(EX\) bit IS more constant...it's only the EX bit that changes. I knew I had to to escape some characters but got confused as to how many times to do each one. I have tried using your example as follows: $postScriptData =preg_replace("/\\\(.*?\)\\/","",$postScriptData); and get the following error: Warning: No ending delimiter '/' found in... Any suggestions? Cheers Alexis David Tulloh wrote:
I assume that the text inside can change around a fair bit. If the string is of a fixed with or simple format you can just use substr() and friends, it's simpler and faster. That said, there is really two approaches that I can see with this string. You can match on the spaces to extract the 'RV-6', something like '/\s\S+\s/' should do the trick, that pulls out some non-whitespace characters from between two whitespace characters, including the whitespace characters. Then just add the () on again afterwards. The other approach would be to use preg_replace to get rid of the \(EX\) portion by replacing it with an empty string. Personally I would probably use the first technique as I generally don't like using replace functions in this way. A pattern which should match is '/\\\(.*?\)\\/', the mess of \ is because \ ( and ) all need to be escaped with a \. David phplists wrote:
Hi, I'm still trying to get to grips with REGEX and have hit a hurdle with the following: I have this bit of text: (\(EX\) RV-6 ) I want to remove the '\(EX\)' part of it so leaving just: ( RV-6 ) Any suggestions would be most appreciated. Thanks Alexis


« previous php.general (#229873) next »