убрать все символы кроме цифр php
PHP: как удалить все непечатаемые символы в строке?
Я полагаю, что мне нужно удалить символы 0-31 и 127,
есть ли функция или часть кода, чтобы сделать это эффективно.
16 ответов
7 бит ASCII?
если ваша Тардис только что приземлилась в 1963 году, и вы просто хотите 7-битные печатные символы ASCII, вы можете вырвать все из 0-31 и 127-255 с помощью этого:
он соответствует чему-либо в диапазоне 0-31, 127-255 и удаляет его.
8 бит расширенный ASCII?
Ах, добро пожаловать в 21 век. Если у вас есть строка в кодировке UTF-8, то /u модификатор может использоваться в регулярном выражении
это просто удаляет 0-31 и 127. Это работает в ASCII и UTF-8, потому что оба разделяют тот же диапазон набора управления (как отмечено mgutt ниже). Строго говоря, это будет работать без /u модификатор. Но она облегчает жизнь, если вы хотите удалить другие символы.
если вы имеете дело с Unicode, есть потенциально много непечатающих элементов, но давайте рассмотрим простой один: ПРОСТРАНСТВО БЕЗ ПЕРЕРЫВА (U+00A0)
добавление: как насчет str_replace?
preg_replace довольно эффективен, но если вы делаете эту операцию много, вы можете создать массив символов, которые хотите удалить, и использовать str_replace, как отмечено mgutt ниже, например
интуитивно кажется, что это будет быстро, но это не всегда так, вы должны обязательно проверить, если это спасет вас что-нибудь. Я сделал несколько тестов по различным длинам строк с помощью случайные данные, и этот шаблон появился с использованием php 7.0.12
сами тайминги предназначены для 10000 итераций, но что более интересно, это относительные различия. До 512 символов, я видел еще всегда выигрывают. В диапазоне 1-8kb str_replace имел маргинальное ребро.
Я думал, что это интересный результат, так это здесь. главное не принять этот результат и использовать его, чтобы решить, какой метод использовать, но для сравнения с ваши собственные данные, а затем решить.
многие другие ответы здесь не учитывают символы юникода (например, öäüßîîûηыეமிᚉ ⠛ ). В этом случае вы можете использовать следующее:
есть странный класс символов в диапазоне \x80-\x9F (чуть выше 7-битного диапазона ASCII символов), которые технически управляют символами, но со временем были неправильно использованы для печати символов. Если у вас нет никаких проблем с этим, то вы можете использовать:
если вы хотите также ленточный канал, возврат каретки, вкладки, неразрывные пробелы и мягкие дефисы, вы можете использовать:
обратите внимание, что вы должны используйте одинарные кавычки для приведенных выше примеров.
если вы хотите удалить все, кроме основных символов ASCII для печати (все символы примера выше будут удалены), вы можете использовать:
вы можете использовать классы символов
начиная с PHP 5.2, у нас также есть доступ к filter_var, о котором я не видел никаких упоминаний, поэтому думал, что выброшу его там. Чтобы использовать filter_var для удаления непечатаемых символов 127, вы можете сделать:
фильтр ASCII символов ниже 32
фильтр ASCII символов выше 127
вы также можете html-кодировать низкие символы (новая строка, вкладка и т. д.) во время зачистки высокий:
есть также варианты для зачистки HTML, дезинфекции электронной почты и URL-адресов и т. д. Таким образом, много вариантов для дезинфекции (удаление данных) и даже проверки (возврат false, если он недействителен, а не молча зачистки).
однако по-прежнему существует проблема, что FILTER_FLAG_STRIP_LOW будет удалять новую строку и возврат каретки, которые для textarea являются полностью допустимыми символами. поэтому некоторые ответы регулярных выражений, я думаю, все еще необходимы время от времени, например, после просмотра этого потока, я планирую сделать это для textarea:
Это кажется более читаемым, чем ряд регулярных выражений, которые были удалены числовой диапазон.
Удалить через регулярку все символы кроме запятой и цифр
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Удалить все символы кроме цифр
Уважаемые форумчане! Просьба подсказать как не-хардкорным способом, а красивым и элегантным.
Удалить из строки все символы кроме цифр
Программа просит ввести строку S и удаляет из неё все символы кроме цифр. Добавлено через 20.
Удалить все символы, кроме латинских букв и цифр, а все большие лат. буквы сделать маленькими
всем привет, помогите исправить код программы. суть проги в том чтобы вводились множество символов.
Удалить из однотипных строчек все буквы и символы кроме цифр
есть переменная в которой храниться значение вот такого типа bet.html?hl=15157999. мне нужно.
Решение
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вводится строка, в ней нужно удалить все символы кроме цифр
Вводится строка, в ней нужно удалить все символы кроме цифр
Обработка символьных данных(удалить в строке все символы, кроме цифр)
Составить программу, которая вводит строку символов, выполняет ее обработку удаление всех символов.
Удалить все символы из строки кроме группы(известно количество) цифр
Ребят подскажите как будет лучше реализовать сделующую задачу: в поле мемо имеется порядка 10 000.
удалить все символы кроме цифр из мемо имеющий более 100 строк
есть мемо в котором задействованы практически все символы нужно оставить только цифры procedure.