Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

341

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

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

Але повернемося в нашу реальність, де цифри – це є цифри, а літерами пишуть слова. І знову сьогодні мова піде про регулярних виразах. Тільки з їх допомогою можна правильно просіяти вміст і отримати шуканий рядок, поєднання символів або просто цифри. Пошуком останніх і займемося. Але спочатку визначимося, що ми хочемо зробити з знайденими цифрами.

З допомогою PHP залишаємо тільки цифри:

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

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

Розглянемо ближче регулярку: /[^0-9]/

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

Інші приклади

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

Застосуємо ці метасимволи в наступних прикладах. У першому з них ми задіємо ще одну функцію PHP, яка призначена для роботи з регулярками.

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

Або так:

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

Зрозуміло, що в цьому прикладі використовується регулярний вираз PHP тільки цифри залишає в рядку. Тим не менш, такий варіант реалізації теж затребуваний. Його можна застосовувати для перевірки дотримання користувачами синтаксису пароля, який встановлюється під час реєстрації.

Але повернемося до нової функції – preg_match(). На відміну від попередньої ця нічого не змінює і не вирізає. Вона лише «відповідає», присутній у рядку $str1значение, яке підходить під регулярний вираз, передане в якості першого аргументу.

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

/[^\d]/

/[\D]/

Найкоротшим з них є другий варіант. У першому додатково використовується символ заперечення («^»). Якщо він вказаний початку шаблону, то це говорить про те, що потрібно шукати все крім зазначених далі діапазонів символів.

Обрізання рядків

Але повернемося до виконання нашого головного завдання – в тексті за допомогою PHP залишити тільки букви і цифри. Тепер попрацюємо з діапазонами. В самому першому скрипті ми використовували регулярний вираз, в якому не застосовувалися модифікатори: /[^0-9]/

Тобто, всі символи, крім цифр від нуля і до 9. А можна звузити діапазон? Давайте пробувати методом «тику» Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри .

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

Ми бачимо, що це працює, і нам вдалося з допомогою функції PHP preg replace залишити лише цифри у заданому діапазоні. Але давайте розвинемо успіх, і рушимо в дослідженнях далі. Ось ще один приклад:

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

Нам вдалося з допомогою PHP залишити в рядку тільки цифри і точки. Зверніть увагу, що для визначення точки в шаблоні ми екранували її правим слешем. Так як точка є метасимволом. Рухаємося ще в нетрі, поки «пре» Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри . Наступний приклад:

Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри

Ура! Ми навчилися залишати в рядку тільки латинські букви і цифри c допомогою PHP. У цьому прикладі ми знову використовували діапазон символів, а також один з метасимволів.

Думаю, сьогоднішнього «запливи» у морі регулярних виразів нам вистачить з головою. А моя племінниця вже працює над наступним своїм творінням Регулярні вирази для того, щоб залишити в рядку PHP тільки цифри .