Регулярное выражение на PHP
То есть надо, что бы осталось число с плавающей точкой, все лишнее долой.
Код:
$my_text = "abc11.22ABC";
$zamena = "";
echo(preg_replace('/[A-Za-z]/', $zamena, $my_text));
$zamena = "";
echo(preg_replace('/[A-Za-z]/', $zamena, $my_text));
Код:
$my_text = "abc11.22ABC";
$zamena = "";
echo(preg_replace('/[^0-9\.]/', $zamena, $my_text));
$zamena = "";
echo(preg_replace('/[^0-9\.]/', $zamena, $my_text));
Код:
preg_match ("[d]{4}.[d]{2}", $my_text)
Код:
Warning: preg_match(): Unknown modifier '{'
Вот так: /[0-9\.]/ не проще?
Да, и заменяются символы при помощи preg_replace();
Код:
$my_text = "abc11.22ABC";
$zamena = "";
echo(preg_replace('/[a-z]/', $zamena, $my_text));
$zamena = "";
echo(preg_replace('/[a-z]/', $zamena, $my_text));
Как добавить выражение, что бы и большие буквы
вырезались тоже?
Код:
$my_text = "abc11.22ABC";
$zamena = "";
echo(preg_replace('/[a-zA-Z]/', $zamena, $my_text));
$zamena = "";
echo(preg_replace('/[a-zA-Z]/', $zamena, $my_text));
Код:
$my_text = "abc11.22ABC";
$zamena = "";
echo(preg_replace('/[a-z]/i', $zamena, $my_text));
$zamena = "";
echo(preg_replace('/[a-z]/i', $zamena, $my_text));
регулярка /[a-z]/i пропустит символы а-яА-Я#!% и тд
вот нормальный способ получить float из строки с кучей мусора
Код:
$my_text = 'abc11.22ABC';
// вариант 1
var_dump((float)preg_replace('/^(.*?)(\d+[\.,]\d+)(.*?)$/', '$2', $my_text));
// вариант 2
if (preg_match('/\d+[\.,]\d+/', $my_text, $match)) {
var_dump((float)$match[0]);
} else {
// не число
}
// вариант 1
var_dump((float)preg_replace('/^(.*?)(\d+[\.,]\d+)(.*?)$/', '$2', $my_text));
// вариант 2
if (preg_match('/\d+[\.,]\d+/', $my_text, $match)) {
var_dump((float)$match[0]);
} else {
// не число
}