Re: REGEX query
| From: | phplists | 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