[php] 문자열에서 숫자 추출

숫자와 문자가 포함 된 문자열에서 숫자를 추출하고 싶습니다.

"In My Cart : 11 items"

나는 숫자 11나 다른 숫자 를 얻기를 원합니다 .



답변

$str = 'In My Cart : 11 12 items';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);


답변

숫자 이외의 모든 것을 필터링하려면 filter_var 을 사용하는 것이 가장 쉽습니다 .

$str = 'In My Cart : 11 items';
$int = (int) filter_var($str, FILTER_SANITIZE_NUMBER_INT);


답변

preg_replace('/[^0-9]/', '', $string);

이것은 더 나은 일을해야합니다! …


답변

사용 preg_replace:

$str = '(111) 111-1111';
$str = preg_replace('/\D/', '', $str);
echo $str;

출력 : 1111111111


답변

부동 숫자의 경우

preg_match_all('!\d+\.?\d+!', $string ,$match);

실수를 지적 해 주셔서 감사합니다. mick


답변

나는 이것에 대한 크레딧을 소유하지 않지만 단지 공유해야합니다. 이 정규식은 소수점 / 자리와 쉼표를 포함하여 문자열에서 숫자를 가져옵니다.

/((?:[0-9]+,)*[0-9]+(?:\.[0-9]+)?)/

여기에서 인용 :
php-regex-문자열에서 소수 (점과 쉼표)로 숫자를 추출하는 방법 (예 : 1,120.01)?


답변

preg_match 사용할 수 있습니다 :

$s = "In My Cart : 11 items";
preg_match("|\d+|", $s, $m);
var_dump($m);