我有一個字符串,看起來像abc,5,7
,我想從中獲取數字。如何從字符串中獲取所有數字
我想出這個:
^(?<prefix>[a-z]+)(,(?<num1>\d+?))?(,(?<num2>\d+?))?$#i
,但它只能與2號工作,我的字符串具有可變數量的數字。我不知道如何改變正則表達式來解決這個問題。請幫助
我有一個字符串,看起來像abc,5,7
,我想從中獲取數字。如何從字符串中獲取所有數字
我想出這個:
^(?<prefix>[a-z]+)(,(?<num1>\d+?))?(,(?<num2>\d+?))?$#i
,但它只能與2號工作,我的字符串具有可變數量的數字。我不知道如何改變正則表達式來解決這個問題。請幫助
你可以試試這個
<?php
$string = "abc,5,7";
$int = intval(preg_replace('/[^0-9]+/', '', $string), 10);
echo $int;
?>
您也可以使用這個正則表達式!\d!
<?php
$string = "abc,5,7";
preg_match_all('!\d!', $string, $matches);
echo (int)implode('',$matches[0]);
explode
用逗號,
是最簡單的方法。
,但如果你堅持用regexp
做這裏是
$reg = '#,(\d+)#';
$text = 'abc,5,7,9';
preg_match_all($reg, $text, $m);
print_r($m[1]);
/* Output
Array
(
[0] => 5
[1] => 7
[2] => 9
)
*/
如何嘗試。非常簡單的應用的preg_replace( '/ [A-ZA-Z,] + /', '',$ STR); //從字符串中刪除字母和逗號
<?php
$str="bab,4,6,74,3668,343";
$number = preg_replace('/[A-Za-z,]+/', '', $str);// removes alphabets from the string and comma
echo $number;// your expected output
?>
預期輸出
46743668343
你不能試着用''爆炸,然後用'is_numeric()'條件在數值上迭代數組? – jitendrapurohit
如果開始時的前綴是必需的,請嘗試使用'(?:^ [az] + | \ G(?!^)),\ K \ d +'[請參閱regex101上的演示文稿](https://regex101.com/r/yP5fT8/2)。否則使用'\ d +'。 –