How to increment numeric part of a string by one?

前端 未结 5 1594
耶瑟儿~
耶瑟儿~ 2020-12-11 01:39

I have a string formed up by numbers and sometimes by letters.

Example AF-1234 or 345ww.

I have to get the numeric part and incre

5条回答
  •  眼角桃花
    2020-12-11 01:50

    You can use preg_replace_callback as:

    function inc($matches) {
        return ++$matches[1];
    }
    
    $input = preg_replace_callback("|(\d+)|", "inc", $input);
    

    Basically you match the numeric part of the string using the regex \d+ and replace it with the value returned by the callback function which returns the incremented value.

    Ideone link

    Alternatively this can be done using preg_replace() with the e modifier as:

     $input = preg_replace("|(\d+)|e", "$1+1", $input);
    

    Ideone link

提交回复
热议问题