Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
439 views
in Technique[技术] by (71.8m points)

php - How to increment numeric part of a string by one?

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 increment it by one.
how can I do that? maybe with regex?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...