|  | Posted by Carl Furst on 05/17/05 21:44 
I think there maybe a few ways to do this... One is
 [^@]@[^@]
 
 That basically says "find me the pattern where one non-at symbol is followed
 by an at symbol followed by another non-at symbol"
 
 So if you do
 
 <?php
 
 $string = "@ one more T@@me for @ and i@ the Bl@@dy n@nsense";
 
 
 $pattern = '/[^@](@)[^@]/';
 
 $numMatch = preg_match_all($pattern, $string, $matches);
 
 echo "numMatch: $numMatch\n";
 print_r ($matches);
 
 ?>
 
 numMatch: 3
 Array
 (
 [0] => Array
 (
 [0] =>  @
 [1] => i@
 [2] => n@n
 )
 
 [1] => Array
 (
 [0] => @
 [1] => @
 [2] => @
 )
 
 )
 
 Well, where that fails is when you have @'s at the beginning or end of the
 string and that's easy enough to do.. So that would mean three searches...
 There's probably a way to integrate them into one without loosing integrity,
 but it depends on what kind of regexp libs you have, I reckon. It also
 depends on what you really are trying to do with this search. Consider
 str_replace, strpos and strtr as well.
 
 Thanks,
 
 
 Carl
 -----Original Message-----
 From: Al [mailto:news@ridersite.org]
 Sent: Monday, May 16, 2005 3:54 PM
 To: php-general@lists.php.net
 Subject: regex question
 
 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....
  Navigation: [Reply to this message] |