In this article, we will extract numbers from strings using PHP. There are various built-in methods to extract numbers from strings, some of them are discussed below.
Methods:
- Using preg_match_all() Function.
- Using filter_var() Function.
- Using preg_replace() function.
Method 1: Using preg_match_all() Function.
Note: preg_match() function is used to extract numbers from a string. Usually, the search starts from the beginning of the subject string. The optional parameter offset is used to specify the position from where to start the search.
Syntax:
int preg_match( $pattern, $input, $matches, $flags, $offset )
Return value: It returns true if a pattern exists, otherwise false.
Example 1: The following example extracts Integer Numbers using the preg_match_all() function.
PHP
<?php // PHP program to illustrate // preg_match function // Declare a variable and initialize it $neveropen = 'Welcome 2 Geeks 4 Geeks.' ; // Use preg_match_all() function to check match preg_match_all( '!\d+!' , $neveropen , $matches ); // print output of function print_r( $matches ); ?> |
Array ( [0] => Array ( [0] => 2 [1] => 4 ) )
Example 2: The following example extracts decimal numbers using the preg_match_all() function.
PHP
<?php // Declare a variable and initialize it $neveropen = 'Welcome 2 Geeks 4.8 Geeks.' ; // Use preg_match_all() function to check match preg_match_all( '!\d+\.*\d*!' , $neveropen , $matches ); // Display matches result print_r( $matches ); ?> |
Array ( [0] => Array ( [0] => 2 [1] => 4.8 ) )
Method 2: Using filter_var() function.
Note: The filter_var() function filters a variable with the specified filter. This function is used to both validate and sanitize the data.
Syntax:
filter_var(var, filtername, options)
Return Value: It returns the filtered data on success, or FALSE on failure.
Example:
PHP
<?php // PHP program to illustrate filter_var Function // Declare a variable and initialize it $neveropen = 'Welcome 2 Geeks 4 Geeks.' ; // Filter the Numbers from String $int_var = (int)filter_var( $neveropen , FILTER_SANITIZE_NUMBER_INT); // print output of function echo ( "The numbers are: $int_var \n" ); ?> |
The numbers are: 24
Method 3: Using preg_replace() function.
Note: The preg_replace() function is an inbuilt function in PHP that is used to perform a regular expression for search and replace the content.
Syntax:
preg_replace( $pattern, $replacement, $subject, $limit, $count )
Return Value: This function returns an array if the subject parameter is an array, or a string otherwise.
Example:
PHP
<?php // PHP program to illustrate // preg_replace function // Declare a variable and initialize it $neveropen = 'Welcome 2 Geeks 4 Geeks.' ; // Filter the Numbers from String $int_var = preg_replace( '/[^0-9]/' , '' , $neveropen ); // print output of function echo ( "The numbers are: $int_var \n" ); ?> |
The numbers are: 24