我有一個字符串$text_arr="101104105106109111112113114116117120122123124"
相當大串preg_match連續匹配三個數字的子串?
如果我想從他們像101,104,105
在$array
分裂三個數字,並將其儲存。什麼應該怎麼辦?
我試着這樣做:
preg_match_all('/[0-9]{3}$/',"$text_arr",$array);
我有一個字符串$text_arr="101104105106109111112113114116117120122123124"
相當大串preg_match連續匹配三個數字的子串?
如果我想從他們像101,104,105
在$array
分裂三個數字,並將其儲存。什麼應該怎麼辦?
我試着這樣做:
preg_match_all('/[0-9]{3}$/',"$text_arr",$array);
要做到這一點,最簡單的方法是使用preg_split()
Docs:
$result = preg_split('/(\d{3})/', $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
See it working,或者結果:
Array
(
[0] => 101
[1] => 104
[2] => 105
[3] => 106
[4] => 109
[5] => 111
[6] => 112
[7] => 113
[8] => 114
[9] => 116
[10] => 117
[11] => 120
[12] => 122
[13] => 123
[14] => 124
)
我的回答這是不工作! – Aditya
非常感謝!我有一個類似的陣列,我必須根據像「JimCaseyAlexShawn」這樣的資本進行分割? – Aditya
@Aditya使用完全相同的路線同上,但改變正則表達式'/([AZ] [AZ] +)/' – DaveRandom
選擇這個簡單的代碼
<?php
$string = "101104105106109111112113114116117120122123124";
$parts = str_split($string, 3);
$res=implode(',',$parts);
echo($res);
?>
雖然你能使用正則表達式爲此,它可能更pe rformant使用簡單,標準功能:
$groups = str_split($numbers, 3);//returns array you want
我得到的結果是這樣的:陣列([0] => [1] => 101)陣列([0] =>)陣列([0] => 104)陣列([0] =>)Array([0] => 105)Array([0] =>)Array([0] =>)Array([0] => 106) ([0] => 109)Array([0] =>)Array([0] => 111)Array([0] => Array([0] =>)Array([0] =>)Array([0] =>)Array([0] =>)Array([0] =>)Array [0] => 113)陣列([0] =>)陣列([0] =>)陣列([0] =>)陣列([0] => 114)陣列([0] =>)陣列( [0] =>)陣列([0] => 116)陣列([0] => 117) – Aditya
@Aditya:我不是,'str_split( '123456789123456789',3);'工作得很好。檢查您輸入的字符串,或者建立一個引擎收錄或鍵盤,所以我們可以看到你在做什麼 –
沒錯其工作終於 – Aditya
你必須從你的表情刪除$,檢查以下 –