|
Posted by Al on 10/20/58 11:16
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
Navigation:
[Reply to this message]
|