PHP, як і годиться сучасної мовипрограмування, пропонує розробникові набір функцій для використання регулярних виразів. Можна шукати входження рядків в інші рядки за складними критеріями.
HTML, CSS, XML та інші формалізовані файли -класичні задачі для застосування функції preg match all. Не менший ефект дає потрібні адреси та, прізвищ, номерів телефонів, e-mail та іншої інформації в неформалізованих текстах.
PHP пропонує дві функції пошуку: preg match і preg match all. Перша шукає перше входження шаблону в рядку, друга - все входження. Іноді використовують термін "збіг з шаблоном". У першому випадку результат функції - "рядок збігається з шаблоном", у другому випадку - "в рядку знайдені збіги з шаблоном". Формально термін "збіг" більш точно відображає суть, але природний контекст операції зазвичай - "пошук" інформації. На практиці затребуване і одне, і інше. Нижче розглянуто формат функцій.
Результат функції - число, кількість збігів. Всі знайдені збіги записуються в масив - matches. У разі функції preg match all можна вказати порядок сортування масиву:
Сортування за першим варіантом групує результати пошуку по номеру регулярного виразу (значення за замовчуванням). У другому випадку результати групуються за місцем їх знаходження в рядку.
Важливо пам'ятати, що шаблон оперує символами. Програмування вже давно забуло, що таке тип даних "символ". Сучасні мови не опускаються нижче поняття "рядок", але по відношенню до шаблону треба розуміти: тут маніпулюють символами.
Побудова шаблону - це, перш за все, вказівка потрібної послідовності символів. Якщо це чітко засвоїти, то помилок в шаблоні не буде. У всякому разі, буде набагато менше.
Регістр в шаблоні важливий. Перший і останній символи шаблону мають велике значення. Можна вказати, з чого починається шаблон і чим закінчується.
PHP preg match all використовує стандартний синтаксис регулярних виразів. Квадратні дужки позначають один із символів, який в них вказано:
Символи повторення позначаються фігурними дужками - {n, m} і відносяться до попереднього символу.
Синтаксис передбачає безліч варіантів для створення шаблонів, але краще всього починати з азів, тобто з простих, власноруч написаних, в яких складні елементи і комбінації відсутні.
Простіше кажучи, перерахувавши реальні символи,які потрібні, вказавши їх потрібні кількості і врахувавши, що символ "^" відповідає початку, а "$" - кінця рядка, можна створювати простенькі шаблони. Аналізуючи реальні налагоджені регулярні вирази від кваліфікованих фахівців, можна знайти міцні знання для створення складних застосувань preg match all. Арсенал PHP не обмежений тільки цими двома функціями, але вони найчастіше використовуються.
Шаблон для цілого числа:
Теж шаблон цілого числа, але попереду може бути знак ( "+", "-"), і спереду / ззаду можуть бути зайві прогалини:
аналогічно:
Застосування власних шаблонів для preg match all, приклади їх в інтернеті, аналіз коду сторінок сайтів і інші джерела дозволяють сформувати власну бібліотеку шаблонів.
Варіантів для пошуку інформації може бутибезліч. Зокрема, наведені останні дві конструкції можна змоделювати інакше. У багатьох випадках перевагу матиме той шаблон, який швидше і точніше забезпечить потрібне збіг. Застосування на PHP preg match all, як і аналогічних функцій на інших мовах, вимагає практики, уваги і попередньої перевірки правильності шаблонів.
</ P>