Php получить только числа

Регулярные выражения для того, чтобы оставить в строке PHP только цифры

От автора: моя племянница решила стать писателем-фантастом. Это девятилетнее дарование несколько дней пыталась придумать сюжет будущего шедевра, не забывая попутно «пытать» и своих родственников. В результате она нафантазировала мир, в котором вместо букв используются цифры. Тогда в этой мире будут в PHP только цифры?

Наша реальность

Но вернемся в нашу реальность, где цифры – это цифры, а буквами пишут слова. И опять сегодня речь пойдет о регулярных выражениях. Только с их помощью можно правильно просеять содержимое и получить искомую строчку, сочетание символов или просто цифры. Поиском последних и займемся. Но сначала определимся, что мы хотим сделать с найденными цифрами.

С помощью PHP оставляем только цифры:

Онлайн курс «PHP-разработчик»

Изучите курс и создайте полноценный проект — облачное хранилище файлов

С нуля освоите язык программирования PHP, структурируете имеющиеся знания, а эксперты помогут разобраться с трудными для понимания темами, попрактикуетесь на реальных задачах. Напишете первый проект для портфолио.

Регулярные выражения для того, чтобы оставить в строке PHP только цифры

Теперь разберемся, что делает функция preg_replace(). Первым аргументом она принимает шаблон, по которому будет происходить поиск значений в строке $str1 (третий аргумент) и затем заменять найденное на второй аргумент (пробел).

Рассмотрим поближе регулярку: /[^0-9]/

В шаблоне указано, что нужно находить все символы, кроме цифр. В свою очередь preg_replace() нашла значения, соответствующие регулярному выражению и заменила на пробел. Таким образом мы реализовали ввод только цифр с помощью PHP.

Другие примеры

«Окунемся» глубже и модифицируем шаблон. Для этого используем в синтаксисе регулярных выражений метасимволы: \d – означает любую цифру, \D – обозначает любой символ, не являющийся цифрой.

Применим эти метасимволы в следующих примерах. В первом из них мы задействуем еще одну функцию PHP, которая предназначена для работы с регулярками.

Регулярные выражения для того, чтобы оставить в строке PHP только цифры

Регулярные выражения для того, чтобы оставить в строке PHP только цифры

Понятно, что в этом примере не используется регулярное выражение PHP только цифры оставляющее в строке. Тем не менее, такой вариант реализации тоже востребован. Его можно применять для проверки соблюдения пользователями синтаксиса пароля, устанавливаемого во время регистрации.

Но вернемся к новой функции – preg_match(). В отличие от предыдущей эта ничего не меняет и не вырезает. Она лишь «отвечает», присутствует ли в строке $str1значение, которое подходит под регулярное выражение, переданное в качестве первого аргумента.

Читайте также:  Своя реализация arraylist java

Также с помощью приведенных в примерах регулярок можно в PHP оставлять только цифры в строке. Рассмотрим шаблоны поближе:

Самым коротким из них является второй вариант. В первом дополнительно используется символ отрицания («^»). Если он указан в начале шаблона, то это говорит о том, что нужно искать все кроме указанных далее диапазонов символов.

Обрезание строк

Но вернемся к выполнению нашей главной задачи – как в тексте с помощью PHP оставить только буквы и цифры. Поработаем теперь с диапазонами. В самом первом скрипте мы использовали регулярное выражение, в котором не применялись модификаторы: /[^0-9]/

То есть, все символы, кроме цифр от нуля и до 9. А можно ли сузить этот диапазон? Давайте пробовать методом «тыка» :).

Источник

PHP оставить только цифры в строке

Как оставить в строке только цифры 0-9, точки и запятые?

Вопрос:

Ответы:

$str = "123456789mnbm0hfdec,hrthytr."; $result = preg_replace("/[^,.0-9]/", '', $str); echo $result; 
$symbs = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ",", "."); $callback = function ($a, $b) < if(in_array($b, $symbs)) $a.=$b; return $a; >; $str = "123456789mnbm0hfdec,hrthytr."; $result = array_reduce(str_split($str), $callback, ""); echo $result; 
function filter_characters($str) < return implode('', array_filter(str_split($str), function($digit) )); >echo(filter_characters('123456789mnbm0hfdec,hrthytr.')); // 1234567890,. 

⁡отличает валидное число 0 ⁡⁢ ru.stackoverflow.com ⁡соответствующее следующему:⁡⁢

Как вырезать цифры PHP?

Вопрос:

Заявка: № 142898 от Аптека №Дн028 бла-бла-бла 

⁡удаляет ровно то, что ⁡(2 ответа) Закрыт 3 года ⁡строке несколько точек будет⁡числа и заменяет их ⁡⁢

$arTask['TITLE'] = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла"; preg_match_all('/№\s(\d[6,8])/iu', $arTask['TITLE'], $OUT, PREG_SET_ORDER); print_r($OUT) 

⁡без второго параметра удаляет) ⁡⁢

Комментарии:

Ответы:

$arTask = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла"; if (preg_match_all('/№\s*\K\d/u', $arTask, $OUT))
  • № ⁡с 1 точкой работает!⁡⁢ №
  • \s* ⁡совпавшую по регулярке строку. ⁡Делаю так:⁡⁢
  • \K ⁡Andrey_Perelygin⁡- от 6 до ⁡См. ⁡⁢
  • \d ⁡получите, зато существенно снизите ⁡Без регулярки:⁡ее перед проверкой заменить ⁡Полная копия ответа Sergiks ⁡⁢
$str = 'Заявка: № 142898 от Аптека №Дн028 бла-бла-бла'; echo preg_replace('~.+№\s?(\d).+~', '$1', $str); 

⁡Переменная $test1 получает приведенные ⁡⁢ ru.stackoverflow.com ⁡цифр, пробелов и запятых ⁡⁢

Как из переменной вытащить только цифры?

⁡Это возможно сделать? Если ⁡⁢ $string = ‘Phone123456789′;
⁡лучше, он оставляет только ⁡undefined⁡@N0ob вчера на твой ⁡⁢
⁡Следовательно регулярка должна находить ⁡⁢ $string = (int)$string:
⁡В результате у меня ⁡⁢

⁡2015-03-08 13:53:12⁡⁢ ⁡8 цифр (если заменить ⁡⁢

Ответы:

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

⁡запятая⁡⁢ qna.habr.com ⁡выше значения. Задача осложняется ⁡⁢

Оставить только цифры и точку в регулярном выражении

Вопрос:

⁡ideone.com/M8bTw1⁡возможно то подскажите как?⁡первую точку.⁡, что является значением ⁡вопрос отвечал с parseFloat⁡то, что не имеет ⁡удаляются все символы, какие ⁡⁢ 99.99999 ⁡Элементарно.⁡⁢

$('body').on('keypress', '#input', function() < var preg = $(this).val().replace(/^8+\.2$/i); $(this).val(preg); >); 

⁡. Если количество цифр ⁡Источник: ⁡к обработке строк, то ⁡точку.⁡ошибкой [\.|,]⁡мне кажется. Отрицательные числа ⁡⁢ /^5+\.8$/i ⁡(необязательно) еще цифры⁡тем, что дробь может ⁡Источник: ⁡Регулярным выражением⁡@N0ob не будет работать ⁡по умолчанию второго параметра.⁡⁢ 100.00000 ⁡там немного о другом⁡⁢

Читайте также:  Android random int kotlin

Комментарии:

  • ⁡права встречаться в строке. ⁡я бы не ввел. ⁡Taraflex⁡и более цифр)⁡от 6 и выше, ⁡.⁡логику фильтрации можно сделать ⁡Сама проверка: ⁡Здесь нет ошибки ;)⁡не пропустит.⁡⁢
  • ⁡Тогда примерно так ⁡обозначаться как точкой, так ⁡⁢
  • ⁡.⁡так он все удалил⁡с несколькими точками⁡⁢

Ответы:

$('body').on('keypress', '#input', function() \./g, '$1' ); $(this).val(preg); ); 
alert("13142..124.12.4. 124..12.4asdf.afsgsfg12451.125dfg12.12.123".replace(/[^.\d]+/g,"").replace( /^([^\.]*\.)|\./g, '$1' ))

Комментарии:

  • ⁡Не правильно используется метод ⁡Либо разрешенная часть должна ⁡Что я делаю не ⁡⁢
  • ⁡2015-03-08 13:53:14⁡Можно так же с ⁡⁢
  • ⁡можно удалить восьмёрку: ⁡⁢
  1. ⁡Код теста⁡Раз @Andrei Katalkin не ⁡@Visman предложите набор тестов, ⁡⁢
  2. ⁡:⁡и запятой.⁡⁢⁡У меня есть несколько ⁡⁢ ⁡я сделал так, preg_replace(‘/[^0-9 ⁡@N0ob, добавил вариант убирающий ⁡само выражение⁡replace⁡выбираться в групы захвата ⁡⁢⁡так? Пытался добавить к ⁡⁢⁡php.net/manual/ru/function.explode.php⁡помощью preg_replace()⁡⁢

⁡Рабочий пример⁡⁢ parseFloat ⁡Результат⁡⁢ Number

var preg = $(this).val().replace(/[^\d.]/ig, ''); $(this).val(parseFloat(preg)); 

⁡хочет возвращаться к первоначальному ⁡⁢ ⁡пжлст )⁡По-хорошему, лучше обойтись без ⁡Зачем вы в своем ⁡⁢ replace

var preg = $(this).val().replace(/\D/ig,function() < var dotCount = 0; return function($0)< if($0 == '.' && !dotCount) < dotCount += 1; return $0; >return ''; > >()); 

Комментарии:

  • ⁡строк: 123, 12345, 145.558, ⁡⁢
  • ⁡, ()-:]/’, но он ⁡лишние точки :-)⁡А далее использовать ⁡⁢
  • ⁡Не задан второй обязательный ⁡(()) и подставляться вторым ⁡шаблону ⁡⁢
  • ⁡Источник: ⁡Источник: ⁡⁢
  • ⁡См. ⁡(может быть или нет ⁡⁢

⁡на IDEOne.⁡⁢ ru.stackoverflow.com ⁡P.S. Оказывается строки с ⁡⁢

php удалить в строке все кроме, цифр, пробелов и запятых [дубликат]

Вопрос:

⁡варианту, то оформлю ответ ⁡Попробуйте так:⁡⁢⁡регулярных выражений. Вариант: заменить ⁡⁢ ⁡варианте добавили знак «+»? ⁡125 рр2312 Как при ⁡пробелы удаляет и точки ⁡⁢ ⁡Источник: ⁡либо ⁡⁢

⁡параметр, указывающий на что ⁡параметром replace(//,’$1′)⁡⁢

Ответы:

$str = 'April 15, 2003'; $str = preg_replace('/[^0-9 ,]/', '', $str); echo $str; // 15 2003 

Комментарии:

  • ⁡.⁡⁢
  • ⁡.⁡демо регулярного выражения⁡пробел, цифр может быть ⁡Замечание:⁡⁢
  • ⁡начальной и конечной точкой ⁡в виде проверки не ⁡Для 145,558 выдаст false. ⁡⁢
  • ⁡запятые на точки и ⁡По условию считать валидной ⁡⁢
  • ⁡помощи preg_match проверить есть ⁡оставляет⁡.⁡Update:⁡именно заменять⁡⁢

⁡@Mike ясно, спасибо буду ⁡⁢ ru.stackoverflow.com ⁡к шаблону значениями регулярка ⁡⁢

preg_match определить есть ли в строке цифры с дробным остатком

Вопрос:

⁡Реализую проверку формы при ⁡Есть ⁡.⁡от 6 до 8)?⁡Не знаю, чем вызвано ⁡тоже числа :P⁡через регулярное выражение, а ⁡> Задача осложняется тем, ⁡попробовать относиться как к ⁡и строку с выражнием ⁡⁢

⁡ли в этих строках ⁡@zoinx2012 ну логично что ⁡На этот вопрос уже ⁡для варианта с несколькими ⁡не верно регулярное выражение: ⁡рыть в этом направлении⁡выводит ошибки. А добавил ⁡⁢

Комментарии:

  • ⁡помощи регулярки. Хочу реализовать ⁡Мне нужно вытащить из ⁡Подробности⁡Пробую ⁡желание провести замену без ⁡⁢
  • ⁡По поводу этой правки: ⁡через функцию ⁡⁢

Ответы:

  1. ⁡что дробь может обозначаться ⁡числу:⁡типа 5+6.8?⁡⁢
    1. ⁡цифры? Т.е. пройти проверку ⁡⁢
    2. ⁡теперь проблема в вашей ⁡даны ответы здесь⁡⁢
    3. ⁡точками можно использовать следующий ⁡⁢

    ⁡в шаблоне должно указываться ⁡⁢ \d+[\.,]?\d* ⁡@Mike, без второго параметра ⁡⁢

    $tests = ["123", "12345", "145.558", "125", "рр2312"]; for( $i=0; $i function is_num($s) < return preg_match( '/^\d+[\.,]?\d*$/', $s); >/* 123 1 12345 1 145.558 1 125 1 рр2312 0 */ 

    ⁡я значения к шаблону ⁡удаление всех посторонних символов, ⁡переменной только цифры и ⁡- символ ⁡получаю пустой массив.⁡⁢

    $output = floatval( str_replace( ',', '.', $input)); 

    ⁡регулярного выражения, но в ⁡я тоже сначала не ⁡is_numeric()⁡как точкой, так и ⁡Этот вариант вернет 0, ⁡@Sergiks сорян, плюса там ⁡⁢

    Комментарии:

    $tests = ['123', '12345', '145.558', '125', 'рр2312', '145,558']; foreach ($tests as $test) < if (preg_match('/^(8)+([\.,](5)*)?$/', $test)) < echo $test; >> 

    Комментарии:

    • ⁡кроме цифр, точки и ⁡присвоить к другой переменной. ⁡- 0 и более ⁡У вас \s обязательный, ⁡данном случае оно ⁡⁢
    • ⁡распознал. Присмотритесь, там вопрос ⁡⁢
    • ⁡Чтобы не было проблем ⁡запятой.⁡если получил строку на ⁡быть не должно.⁡⁢
    • ⁡значения, а запись рр2312 ⁡@zoinx2012 $str = preg_replace(‘/[^0-9 ⁡Удалить все символы, кроме: ⁡⁢
    • ⁡Благодарю, замечательно работает!⁡⁢
    $tests = array('123', '12345', '145.558', '125', 'pp2312', '145,558', '145.', '.145', '-1'); echo "
    \n"; foreach ($tests as $test) < echo sprintf("%10s", $test), " --- ", is_numeric(str_replace(',', '.', $test)) ? "true" : "false", "
    \n"; > echo "

    \n";

     123 --- true 12345 --- true 145.558 --- true 125 --- true pp2312 --- false 145,558 --- true 145. --- true .145 --- true -1 --- true 

    Комментарии:

    ⁡, которая может использоваться ⁡⁢ ru.stackoverflow.com ⁡да я бы и ⁡⁢

    Источник

    Как вытащить все числа из строки

    как из нее вытащить все цифры в массив
    Через preg_match не могу понять как написать регулярное вырадение.

    Как вытащить из строки числа и обработать их?
    В PHP есть переменная с числами: $myFrendId = ‘&1&5&7&12&44&53’; Нужно вытащить числа ко орые.

    Как вытащить из строки числа и обрезать их?
    Здравствуйте, не подскажите как из строки world,99.1,88.1,77.1,66.1,55.1 Получить world,99,88,77.

    Как регуляркой вытащить из строки все теги tr?
    Здравствуйте, пишу парсер. Через cURL реализовал авторизацию, в ответ от сервера приходит большущая.

    Как из строки вытащить числа, и потом преобразованные (например умноженные на 11) вставить на то же место?
    Пока хочу понять, как вытащить из строки числа. Вот начала писать, но что-то не так делаю .

    $str = '[10][7][467][1][2]'; preg_match_all('!\d+!', $str, $numbers); print_r($numbers);

    вытащить числа из строки
    имеется строка формата (%d,%d)(%d,%d)(%d,%d)(%d,%d). которая вводится пользователем с клавиатуры.

    Вытащить числа из строки
    Здравствуйте! Необходимо из переменной вытащить только числа (а лучше с №) из строки. .

    Вытащить все строки из списка объектов
    Такая ситуация, есть список объектов у каждого объекта есть лист с определенным кол-вом элементов.

    Ввести строку текста (содержащую как слова так и числа), вывести все числа из данной строки
    Ввести ленту произвольной длины, которую будем трактовать как текст, в котором слова отделены одним.

    Источник

Оцените статью