Re: regex question
| From: | Al | Date: | Tue, 17 May 2005 19:25:58 +0000 |
| Subject: | Re: regex question | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-215404@lists.php.net to get a copy of this message | ||
Murry's solution here is ideal since it only captures the single occurrence. Since I want to use it for a preg_replace(), it is perfect.
A couple of folks sent this pattern [^@]@[^@]; but, it doesn't work because I then have to remove the unwanted caracters on either side.
All it says is [not @]@[not@] but, it captures the 2 characters on each side.
Murry's solution (?<!@)@(?!@) is good since it only captures the "@"
Thanks everyone....
Murray @ PlanetThoughtful wrote:
What pattern can I use to match ONLY single occurrences of a character in a string. e.g., "Some text @ and some mo@@re and mor@e, etc @@@. I only want the two occurrences with a single occurrence of "@". @{1} doesn't work; there are 4 matches. Thanks....Please ignore my last email re: your question. I realized that the negation of the range containing the "@" would end up capturing unwanted characters. As an alternative, try the following: preg_match_all('/(?<!@)@(?!@)/','Some @ text with the @t sym@@bol @@@@ ', $thing, PREG_OFFSET_CAPTURE); print_r($thing); Hope that's a little more relevant to your question. Regards, Murray