将+1添加到从其他站点获取的字符串

时间:2012-08-15 14:36:38

标签: php replace preg-replace

我有一个来自网站的字符串。

字符串的一部分是“X2”我想要添加+1到2。

我得到的整个字符串是:

20120815_00_X2

我想要的是添加“X2”+1直到“20120815_00_X13”

3 个答案:

答案 0 :(得分:1)

你可以这样做:

$string = '20120815_00_X2';

$concat = substr($string, 0, -1);
$num = (integer) substr($string, -1);

$incremented = $concat . ($num + 1);

echo $incremented;

有关substr()的更多信息,请参阅=> documentation

答案 1 :(得分:1)

您希望在字符串末尾找到数字并捕获它,测试最大值12并添加一个(如果是这种情况),因此您的模式应如下所示:

/(\d+)$/    // get all digits at the end

和整个表达:

$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);

我使用了e修饰符,以便将替换表达式计算为php代码。

请参阅CodePad上的工作示例。

答案 2 :(得分:1)

此解决方案有效(无论X之后的数字是多少):

function myCustomAdd($string)
{

$original = $string;

$new = explode('_',$original);

$a = end($new);

$b = preg_replace("/[^0-9,.]/", "", $a);

$c = $b + 1;

$letters = preg_replace("/[^a-zA-Z,.]/", '', $a);

$d = $new[0].'_'.$new[1].'_'.$letters.$c;

return $d;

}

var_dump(myCustomAdd("20120815_00_X13"));

输出:

string(15) "20120815_00_X14"