في PHP، يمكنك استخراج الأرقام من سلسلة باستخدام التعبيرات العادية والدالة preg_match_all()
. فيما يلي مثال لكيفية استخراج كافة الأرقام من سلسلة:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
سيؤدي هذا إلى إخراج:
Array ( [0] => 15 [1] => 3 )
توضيح:
/[0-9]+/
عن رقم واحد أو أكثر متتالية.preg_match_all()
بالبحث في السلسلة عن كافة تكرارات التعبير العادي وتخزن المطابقات في المصفوفة $matches
.print_r()
لعرض محتويات المصفوفة.يمكنك أيضًا استخدام الدالة preg_replace()
لإزالة الأحرف غير الرقمية من سلسلة والاحتفاظ بالأرقام فقط:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
سيؤدي هذا إلى إخراج:
15 3
توضيح:
/D/
مع أي حرف غير رقمي.preg_replace()
جميع الأحرف غير الرقمية بسلسلة فارغة، مما يؤدي إلى إزالتها بشكل فعال من السلسلة.هناك طريقة أخرى ولكنها ليست موثوقة مثل الخيارين المذكورين أعلاه. يمكننا استخدام وظيفة PHP المضمنة filter_var()
لاستخراج int من السلسلة.
$string = "There are 15 Oranges and 3 Bananas.";
// extract numbers from string
$my_int = (int)filter_var($string ,FILTER_SANITIZE_NUMBER_INT);
echo $my_int;
سيؤدي هذا إلى إخراج:
153