You are here: RE: regex question « PHP « IT news, forums, messages
RE: regex question

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]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация