我想從我的字符串變量的4個獨特的數字是一起去的意思....如果有提取12345
我不希望它給我1234
...我想抓住一組只有4個數字的數字。抓鬥正是從PHP字符串4位
我現在的字符串有這樣的:
echo $code
打印
your code is 34 4325 23453 342
我真的只是想它打印
4325
任何形式的幫助我都能得到,非常感謝!
我想從我的字符串變量的4個獨特的數字是一起去的意思....如果有提取12345
我不希望它給我1234
...我想抓住一組只有4個數字的數字。抓鬥正是從PHP字符串4位
我現在的字符串有這樣的:
echo $code
打印
your code is 34 4325 23453 342
我真的只是想它打印
4325
任何形式的幫助我都能得到,非常感謝!
您可以簡單地使用preg_match_all
有以下regex
\b(\d{4})\b
上述正則表達式檢查是否有以下的4
的準確長度的數字,所以你的代碼看起來像作爲
preg_match_all("/\b(\d{4})\b/",$str,$m);
print_r($m);
Downvoters張貼downvoting的原因。所以,我可以提高我的答案 –
嘗試下面的代碼
preg_match_all('/(\d{4})/', $text, $matches);
return $matches;
這將返回到'4325'&'2345' –
<?php
$input = 'your code is 34 4325 23453 342';
// 1. extract all numbers
preg_match_all('/\d+/', $input, $m);
// 2. find all 4-digits numbers with 4 distinct digits
foreach ($m[0] as $number) {
if (strlen($number) == 4) {
if ($number[0] != $number[1] && $number[0] != $number[2] && $number[0] != $number[3] && $number[1] != $number[2] && $number[1] != $number[3] && $number[2] != $number[3]) {
echo $number, PHP_EOL;
}
}
}
$code = 'your code is 34 4325 23453 342';
echo preg_replace('/.*?(\d{4}).*/', '$1', $code); //outputs 4325
好吧,如果你想爲4個位數每塊是唯一的數字,你就會有這樣的正則表達式:
\b(\d)(?!\1)(\d)(?!\1|\2)(\d)(?!\1|\2|\3)(\d)\b
我認爲你應該使用反向引用這樣的,我可以「找不到另一種方式來做到這一點..
它檢查是否每個數字(\ d)與以往不同
什麼你都試過這麼發R'發佈您的嘗試。 –
標題這個答案是誤導 – vbarbarosh