On 14 October 2010 21:42, Andre Polykanine <an...@oire.org> wrote:
> Hi everyone,
> I hope you're doing well (haven't written here for a long time :-)).
> The question is as follows: I have a regexp that would do the
> following. If the string begins with "Re:", it will change the
> beginning to "Re[2]:"; if it doesn't, then it would add "Re:" at the
> beginning. But (attention, here it is!) if the string starts with
> something like "Re[4]:", it should replace it by "Re[5]:".
> Here's the code:
>
> $start=mb_strtolower(mb_substr($f['Subject'], 0, 3));
> if ($start=="re:") {
> $subject=preg_replace("/^re:(.+?)$/usi", "re[2]:$1", $f['Subject']);
> } elseif ($start=="re[") {
> // Here $1+1 doesn't work, it returns "Re[4+1]:"!
> $subject=preg_replace("/^re\[(\d+)\]:(.+?)$/usi", "re[$1+1]:$2", 
> $f['Subject']);
> } else {
> $subject="Re: ".$f['Subject'];
> }
>
> I know there actually exists a way to do the numeral addition
> ("Re[5]:", not "Re[4+1]:").
> How do I manage to do this?
> Thanks!

Can you adapt this ...

<?php
$s_Text = 'Re: A dummy subject.';

foreach(range(1,10) as $i_Test)
        {
        echo $s_Text = preg_replace_callback
                (
                '`^Re(\[(\d++)\])?:`',
                function($a_Match)
                        {
                        if (count($a_Match) == 1)
                                {
                                $i_Count = 2;
                                }
                        else
                                {
                                $i_Count = 1 + $a_Match[2];
                                }
                        return "Re[$i_Count]:";
                        },
                $s_Text
                ), PHP_EOL;
        }


Outputs ...

Re[2]: A dummy subject.
Re[3]: A dummy subject.
Re[4]: A dummy subject.
Re[5]: A dummy subject.
Re[6]: A dummy subject.
Re[7]: A dummy subject.
Re[8]: A dummy subject.
Re[9]: A dummy subject.
Re[10]: A dummy subject.
Re[11]: A dummy subject.


-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to