Шаблоны проектирования PHP

Шаблоны проектирования PHP
PHP — регулярные выражения

Регулярные выражения — это не что иное, как последовательность или набор символов. Они обеспечивают основу для функциональности сопоставления с образцом.

Используя регулярное выражение, вы можете искать конкретную строку внутри другой строки, вы можете заменить одну строку другой строкой и можете разбить строку на множество фрагментов.

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

  • Регулярные выражения POSIX
  • Регулярные выражения в стиле PERL

Регулярные выражения POSIX

Структура регулярного выражения POSIX не отличается от структуры типичного арифметического выражения: различные элементы (операторы) объединяются для образования более сложных выражений.

Самое простое регулярное выражение — это выражение, которое соответствует одному символу, например g, внутри строк, таких как g, haggle или bag.

Давайте объясним несколько концепций, используемых в регулярном выражении POSIX. После этого мы познакомим вас с функциями, связанными с регулярными выражениями.

Скобки

Скобки ([]) имеют особое значение при использовании в контексте регулярных выражений. Они используются для поиска ряда символов.

Sr.NoВыражение и описание
1

[0-9]

Соответствует любой десятичной цифре от 0 до 9.

2

[a-z]

Соответствует любому символу от строчного a до строчного z.

3

[A-Z]

Соответствует любому символу от A до Z в верхнем регистре.

4[a-Z]

Соответствует любому символу от нижнего а до верхнего Z.

Указанные выше диапазоны являются общими; вы также можете использовать диапазон [0–3] для сопоставления любой десятичной цифры в диапазоне от 0 до 3 или диапазон [bv] для сопоставления любого символа нижнего регистра в диапазоне от b до v.

Квантификаторы

Частота или положение заключенных в квадратные скобки последовательностей символов и отдельных символов может быть обозначена специальным символом. Каждый особый символ имеет определенный оттенок. Знаки +, *,?, {Int. range}, а флаги $ следуют за последовательностью символов.

Sr.NoВыражение и описание
1

p+

Соответствует любой строке, содержащей хотя бы один p.

2

p*

Соответствует любой строке, содержащей ноль или более p.

3

p?

Соответствует любой строке, содержащей ноль или один p.

4

p { N }

Соответствует любой строке, содержащей последовательность из N p

5

p{2,3}

Соответствует любой строке, содержащей последовательность из двух или трех p.

6

p{2, }

Соответствует любой строке, содержащей не менее двух p.

7

p$

Соответствует любой строке с буквой p в конце.

8

^p

Соответствует любой строке с буквой p в начале.

Примеры

Следующие примеры прояснят ваши представления о сопоставлении символов.

Sr.NoВыражение и описание
1

[^ a-zA-Z]

Соответствует любой строке, не содержащей символов от a до z и от A до Z.

2

pp

Он соответствует любой строке, содержащей p, за которой следует любой символ, за которым, в свою очередь, следует другой p.

3

^.{2}$

Соответствует любой строке, содержащей ровно два символа.

4

<b> (. *) </b>

Соответствует любой строке, заключенной в <b> и </b>.

5

p (л.с.) *

Соответствует любой строке, содержащей ap, за которой следует ноль или более экземпляров последовательности php.

Предопределенные диапазоны символов

Для удобства программирования доступно несколько предопределенных диапазонов символов, также известных как классы символов. Классы символов определяют весь диапазон символов, например алфавит или целочисленный набор —

Sr.NoВыражение и описание
1

[[:alpha:]]

Соответствует любой строке, содержащей буквенные символы от aA до zZ.

2

[[:digit:]]

Соответствует любой строке, содержащей цифры от 0 до 9.

3[[:alnum:]]

Соответствует любой строке, содержащей буквенно-цифровые символы от aA до zZ и от 0 до 9.

4

[[:space:]]

Соответствует любой строке, содержащей пробел.

Функции PHP Regexp POSIX

В настоящее время PHP предлагает семь функций для поиска строк с использованием регулярных выражений в стиле POSIX:

Sr.NoОписание функции
1ereg()

Функция ereg () ищет в строке, указанной в строке, строку, заданную шаблоном, возвращая истину, если шаблон найден, и ложь в противном случае.

2ereg_replace ()

Функция ereg_replace () ищет строку, указанную в шаблоне, и заменяет шаблон заменой, если он найден.

3eregi ()

Функция eregi () ищет в строке, заданной шаблоном, строку, заданную параметром string. При поиске регистр не учитывается.

4eregi_replace ()

Функция eregi_replace () работает точно так же, как ereg_replace (), за исключением того, что поиск шаблона в строке не чувствителен к регистру.

5split()

Функция split () разделит строку на различные элементы, границы каждого элемента основаны на наличии шаблона в строке.

6spliti()

Функция spliti () работает точно так же, как и ее родственная функция split (), за исключением того, что она не чувствительна к регистру.

7sql_regcase ()

Функцию sql_regcase () можно рассматривать как служебную функцию, преобразующую каждый символ в строке входных параметров в выражение в квадратных скобках, содержащее два символа.

Регулярные выражения в стиле PERL

Регулярные выражения в стиле Perl похожи на их аналоги в POSIX. Синтаксис POSIX можно использовать почти взаимозаменяемо с функциями регулярных выражений в стиле Perl. Фактически, вы можете использовать любой из квантификаторов, представленных в предыдущем разделе POSIX.

Давайте объясним несколько концепций, используемых в регулярных выражениях PERL. После этого мы познакомим вас с функциями, связанными с регулярными выражениями.

Мета персонажи

Мета-символ — это просто алфавитный символ, которому предшествует обратная косая черта, которая придает комбинации особое значение.

Например, вы можете искать большие денежные суммы, используя метасимвол ‘\ d’: / ([\ d] +) 000 /. Здесь \ d будет искать любую строку числового символа.

Ниже приведен список метасимволов, которые можно использовать в регулярных выражениях стиля PERL.

Character		Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified

Модификаторы

Доступны несколько модификаторов, которые могут значительно упростить вашу работу с регулярными выражениями, например, чувствительность к регистру, поиск в нескольких строках и т. Д.

Modifier	Description
i 	Makes the match case insensitive
m 	Specifies that if the string has newline or carriage
	return characters, the ^ and $ operators will now
	match against a newline boundary, instead of a
	string boundary
o 	Evaluates the expression only once
s 	Allows use of . to match a newline character
x 	Allows you to use white space in the expression for clarity
g 	Globally finds all matches
cg 	Allows a search to continue even after a global match fails

Функции PHP, совместимые с PERL Regexp

PHP предлагает следующие функции для поиска строк с использованием регулярных выражений, совместимых с Perl:

Sr.NoОписание функции
1preg_match ()

Функция preg_match () ищет в строке шаблон, возвращая истину, если шаблон существует, и ложь в противном случае.

2preg_match_all ()

Функция preg_match_all () сопоставляет все вхождения шаблона в строку.

3preg_replace ()

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

4preg_split ()

Функция preg_split () работает точно так же, как split (), за исключением того, что регулярные выражения принимаются в качестве входных параметров для шаблона.

5preg_grep ()

Функция preg_grep () выполняет поиск всех элементов input_array, возвращая все элементы, соответствующие шаблону регулярного выражения.

6preg_ quote ()

Цитировать символы регулярного выражения

Выберите поля, которые будут показаны. Прочие будут скрыты. Перктаскивайте мышкой для изменения порядка полей.
  • Изображение
  • SKU
  • Рейтинг
  • Цена
  • Запасы
  • Доступность
  • В корзину
  • Описание
  • Содержимое
  • Вес
  • Размеры
  • Дополнительная информация
  • Атрибуты
  • Custom attributes
  • Настраиваемые поля
Сравнить
Список желаний 0
Открыть страницу желаний Продолжить покупки