Регулярні вирази приклади як доказ їхньої популярності

388

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

Почнемо ближче

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

Валідація чисел
Введіть число:
function xyz(txt) {
var r = /[0-9]/;
if (r.test(txt))
alert (“Ви ввели число!”)
else
alert (“Ви ввели не число!”)
}

Регулярні вирази приклади як доказ їхньої популярності

Напевно, як ви вже здогадалися, попередній код ілюструє використання регулярок в JavaScript. Сильно заглиблюватися в опис прикладу не буду. Зазначу тільки, що в цій мові для порівняння вхідної рядки з паттерном застосовується метод test.

Повернення в PHP

Тепер на час повернемося на «рідну доріжку». Приклад, розкриває істину:

Регулярні вирази приклади як доказ їхньої популярності

У цьому коді ми спростили нашу регулярку з допомогою метасимвола \d, який позначає «всі цифри». І в першому, і в другому прикладі ми використовували регулярні вирази, сумісні з Perl або PCRE.

Вони володіють декількома важливими перевагами, головними з яких є висока швидкість обробки і глобальне поширення. Якщо порівняти два наведених вище коду, то видно, що використовуються однакові по синтаксису регулярки.

Це означає, що розробнику достатньо один раз вивчити синтаксис PCRE. А потім можна застосовувати їх у різних програмних дисциплінах. На відміну від UNIX-сумісних регулярних виразів, синтаксис яких вважається застарілим. Хоча вони ще і використовуються в деяких утилітах зразок grep. Але в ці нетрі ми не будемо пхати свій ніс Регулярні вирази приклади як доказ їхньої популярності .

Ще один тип

Регулярки бувають різні… Крім описаних існує ще один тип регулярних – POSIX. Це набір стандартів (один загальний стандарт), що забезпечує «переносимість» програмного коду між ОС UNIX.

Але нам пощастило, оскільки POSIX за своїм синтаксису майже не відрізняється від PCRE. В останньому типі реалізована підтримка метасимволів і ще кількох «облегчалок». Якщо цікаво, то ознайомтеся з даною темою самостійно. До речі, в Oracle СУБД використовується POSIX.

Тепер знову повернемося в рідну «стихію». Ось вам приклад з іншої системи:

SELECT `GNPOld` FROM `country` WHERE `GNPOld’REGEXP ‘[0-9]’

Регулярні вирази приклади як доказ їхньої популярності

Це наша рідна СУБД. В ній також використовуються регулярки. В MySQL підтримується синтаксис, «закріплений» у POSIX. Шаблон регулярного виразу в SQL-запиті зазначається безпосередньо після оператора REGEXP. Він же RLIKE. Тобто попередній запит можна використовувати і в такому варіанті:

SELECT `GNPOld` FROM `country` WHERE `GNPOld’RLIKE ‘[0-9]’

І це не викличе жодних проблем у вигляді повідомлень про помилки синтаксису від СУБД.

Регулярні вирази приклади як доказ їхньої популярності

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