Регулярные выражения — это не что иное, как последовательность или последовательность символов. Они обеспечивают основу для сопоставления с образцом.
Используя регулярное выражение, вы можете искать определенную строку внутри другой строки, вы можете заменить одну строку другой строкой и разбить строку на множество фрагментов.
PHP предлагает функции, специфичные для двух наборов функций регулярного выражения, каждый из которых соответствует определенному типу регулярного выражения. Вы можете использовать любой из них в зависимости от вашего комфорта.
- POSIX регулярные выражения
- Регулярные выражения в стиле PERL
POSIX регулярные выражения
Структура регулярного выражения POSIX не отличается от структуры типичного арифметического выражения: различные элементы (операторы) объединяются для формирования более сложных выражений.
Самое простое регулярное выражение — это выражение, которое соответствует одному символу, например g, внутри строк, таких как g, haggle или bag.
Давайте объясним несколько понятий, используемых в регулярном выражении POSIX. После этого мы познакомим вас с функциями, связанными с регулярными выражениями.
Скобки
Скобки ([]) имеют особое значение при использовании в контексте регулярных выражений. Они используются, чтобы найти диапазон символов.
Sr.No | Выражение и описание |
---|---|
1 |
[0-9] Соответствует любой десятичной цифре от 0 до 9. |
2 |
[AZ] Соответствует любому символу из строчных букв от a до строчных z. |
3 |
[AZ] Соответствует любому символу от прописной буквы A до прописной буквы Z. |
4 |
[Az] Соответствует любому символу из строчных букв от A до Z. |
[0-9]
Соответствует любой десятичной цифре от 0 до 9.
[AZ]
Соответствует любому символу из строчных букв от a до строчных z.
[AZ]
Соответствует любому символу от прописной буквы A до прописной буквы Z.
[Az]
Соответствует любому символу из строчных букв от A до Z.
Указанные выше диапазоны являются общими; Вы также можете использовать диапазон [0-3], чтобы соответствовать любой десятичной цифре в диапазоне от 0 до 3, или диапазон [bv], чтобы соответствовать любому символу в нижнем регистре в диапазоне от b до v.
Кванторы
Частота или положение последовательностей символов в скобках и отдельных символов могут быть обозначены специальным символом. Каждый специальный символ имеет определенную коннотацию. +, *,?, {Int. range} и $ flags все следуют за последовательностью символов.
Sr.No | Выражение и описание |
---|---|
1 |
р + Соответствует любой строке, содержащей хотя бы один p. |
2 |
п* Это соответствует любой строке, содержащей ноль или более p. |
3 |
п? Это соответствует любой строке, содержащей ноль или один р. |
4 |
p { N } Соответствует любой строке, содержащей последовательность из N p |
5 |
р {2,3} Соответствует любой строке, содержащей последовательность из двух или трех символов p. |
6 |
p {2,} Он соответствует любой строке, содержащей последовательность из по крайней мере двух символов p. |
7 |
р $ Это соответствует любой строке с p в конце. |
8 |
^ р Соответствует любой строке с p в начале. |
р +
Соответствует любой строке, содержащей хотя бы один p.
п*
Это соответствует любой строке, содержащей ноль или более p.
п?
Это соответствует любой строке, содержащей ноль или один р.
p { N }
Соответствует любой строке, содержащей последовательность из N p
р {2,3}
Соответствует любой строке, содержащей последовательность из двух или трех символов p.
p {2,}
Он соответствует любой строке, содержащей последовательность из по крайней мере двух символов p.
р $
Это соответствует любой строке с p в конце.
^ р
Соответствует любой строке с p в начале.
Примеры
Следующие примеры прояснят ваши представления о соответствующих персонажах.
Sr.No | Выражение и описание |
---|---|
1 |
[^ A-Za-Z] Соответствует любой строке, не содержащей символов из диапазона от a до z и от A до Z. |
2 |
стр Он соответствует любой строке, содержащей p, за которой следует любой символ, за которым следует другой p. |
3 |
^. {2} $ Соответствует любой строке, содержащей ровно два символа. |
4 |
<б> (. *) </ B> Соответствует любой строке, заключенной в <b> и </ b>. |
5 |
р (л.с.) * Он соответствует любой строке, содержащей ap, за которой следует ноль или более экземпляров последовательности php. |
[^ A-Za-Z]
Соответствует любой строке, не содержащей символов из диапазона от a до z и от A до Z.
стр
Он соответствует любой строке, содержащей p, за которой следует любой символ, за которым следует другой p.
^. {2} $
Соответствует любой строке, содержащей ровно два символа.
<б> (. *) </ B>
Соответствует любой строке, заключенной в <b> и </ b>.
р (л.с.) *
Он соответствует любой строке, содержащей ap, за которой следует ноль или более экземпляров последовательности php.
Предопределенные диапазоны символов
Для вашего удобства программирования доступно несколько предопределенных диапазонов символов, также известных как классы символов. Классы символов задают весь диапазон символов, например, алфавит или набор целых чисел —
Sr.No | Выражение и описание |
---|---|
1 |
[[:альфа:]] Соответствует любой строке, содержащей буквенные символы от aA до zZ. |
2 |
[[: цифры:]] Соответствует любой строке, содержащей числовые цифры от 0 до 9. |
3 |
[[цифра , буква]] Соответствует любой строке, содержащей буквенно-цифровые символы от aA до zZ и от 0 до 9. |
4 |
[[:пространство:]] Соответствует любой строке, содержащей пробел. |
[[:альфа:]]
Соответствует любой строке, содержащей буквенные символы от aA до zZ.
[[: цифры:]]
Соответствует любой строке, содержащей числовые цифры от 0 до 9.
[[цифра , буква]]
Соответствует любой строке, содержащей буквенно-цифровые символы от aA до zZ и от 0 до 9.
[[:пространство:]]
Соответствует любой строке, содержащей пробел.
Функции PHP в регулярных выражениях POSIX
В настоящее время PHP предлагает семь функций для поиска строк с использованием регулярных выражений в стиле POSIX —
Sr.No | Описание функции |
---|---|
1 | EREG ()
Функция ereg () ищет строку, указанную в строке, для строки, заданной шаблоном, возвращает true, если шаблон найден, и false в противном случае. |
2 | ereg_replace ()
Функция ereg_replace () ищет строку, указанную шаблоном, и заменяет шаблон заменой, если она найдена. |
3 | eregi ()
Функция eregi () ищет в строке, указанной шаблоном, строку, указанную в строке. Поиск не чувствителен к регистру. |
4 | eregi_replace ()
Функция eregi_replace () работает точно так же, как ereg_replace (), за исключением того, что поиск шаблона в строке не чувствителен к регистру. |
5 | Трещина()
Функция split () разделит строку на различные элементы, границы каждого элемента основаны на вхождении шаблона в строку. |
6 | spliti ()
Функция spliti () работает точно так же, как и ее функция split (), за исключением того, что она не чувствительна к регистру. |
7 | sql_regcase ()
Функцию sql_regcase () можно рассматривать как служебную функцию, преобразующую каждый символ в строке входного параметра в выражение в квадратных скобках, содержащее два символа. |
Функция ereg () ищет строку, указанную в строке, для строки, заданной шаблоном, возвращает true, если шаблон найден, и false в противном случае.
Функция ereg_replace () ищет строку, указанную шаблоном, и заменяет шаблон заменой, если она найдена.
Функция eregi () ищет в строке, указанной шаблоном, строку, указанную в строке. Поиск не чувствителен к регистру.
Функция eregi_replace () работает точно так же, как ereg_replace (), за исключением того, что поиск шаблона в строке не чувствителен к регистру.
Функция split () разделит строку на различные элементы, границы каждого элемента основаны на вхождении шаблона в строку.
Функция spliti () работает точно так же, как и ее функция split (), за исключением того, что она не чувствительна к регистру.
Функцию 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
PHP предлагает следующие функции для поиска строк с использованием Perl-совместимых регулярных выражений —
Функция preg_match () ищет в строке шаблон, возвращая true, если шаблон существует, и false в противном случае.
Функция preg_match_all () сопоставляет все вхождения шаблона в строке.
Функция preg_replace () работает так же, как ereg_replace (), за исключением того, что регулярные выражения можно использовать в шаблонах и входных параметрах замены.
Функция preg_split () работает точно так же, как split (), за исключением того, что регулярные выражения принимаются в качестве входных параметров для шаблона.
Функция preg_grep () ищет все элементы input_array, возвращая все элементы, соответствующие шаблону регулярного выражения.
Цитировать символы регулярного выражения