0

我有一个数字数组,例如:

10001234
10002345

现在我有一个数字,它应该与数组中的所有数字相匹配。例如,该数字可以是 10001234(这很容易匹配),但也可以是 100001234(4 个零而不是 3)或 101234(一个零而不是 3)。任何组合都是可能的。唯一固定的部分是最后的1234。

我无法获得最后 4 个字符,因为它也可以是 3 或 5 或 6 ...,例如 1000123456。

有什么好的方法来匹配它?也许它很容易,我看不到树木的木材:D。

谢谢!

4

3 回答 3

2

如果总是第一个数字是一个,你可以使用这个

$Num=1000436346;
echo(int)ltrim($Num."","1");

输出:

436346
于 2013-02-04T14:03:34.950 回答
0
$number % 10000

将返回一个数字除以 10000 的余数。意思是最后四位数字。

于 2013-02-04T14:02:11.943 回答
0

这个问题并没有使匹配的标准非常清楚。不过,我会试一试。

首先,我的假设:

  • 该数字始终以 a 开头,1后跟未知数量的0s。

  • 在那之后,我们有一个数字序列,可以是任何东西(但大概不是从零开始?),你想从字符串中提取?

鉴于上述情况,我们可以相当容易地制定一个表达式:

$input='10002345';
if(preg_match('/10+(\d+)/',$input,$matches)) {
     $output = $matches[1];
}

$output现在包含数字的第二部分——即2345

如果您需要匹配的不仅仅是一个前导1,您可以将表达式中的替换\d为匹配任何数字。并在其后添加一个加号以允许此处有多个数字(尽管我们仍然依赖于数字的第一部分和第二部分之间至少有一个零)。

$input='10002345';
if(preg_match('/\d+0+(\d+)/',$input,$matches)) {
     $output = $matches[1];
}
于 2013-02-04T14:15:05.463 回答