Регулярные выражения php заглавные буквы

Регулярные выражения php заглавные буквы

PHP regexp — это мощный алгоритм сопоставления шаблонов, которое может быть выполнено в одном выражении. Регулярные выражения PHPиспользуют арифметические операторы (такие как +, -, ^) для создания сложных выражений.

Для чего используются регулярные выражения:

  • Регулярные выражения упрощают идентификацию строковых данных путем вызова одной функции. Это экономит время при составлении кода;
  • При проверке введенных пользователем данных, таких как адрес электронной почты, домен сайта, номер телефона, IP-адрес;
  • Выделение ключевых слов в результатах поиска;
  • Регулярные выражения могут использоваться для идентификации тегов и их замены.

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

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

  • preg_match — используется для выполнения сопоставления с шаблоном строки. Она возвращает true, если совпадение найдено, и false, если совпадение не найдено;
  • preg_split — используется для разбивки строки по шаблону, результат возвращается в виде числового массива;
  • preg_replace – используется для поиска по шаблону и замены на указанную строку.

Ниже приведен синтаксис функций регулярных выражений, таких как preg_match, preg_split или PHP regexp replace:

«имя_функции» — это либо preg_match, либо preg_split, либо preg_replace.
«/…/» — косые черты обозначают начало и конец регулярного выражения.
«’/шаблон/’» — шаблон, который нам нужно сопоставить.
«объект» — строка, с которой нужно сопоставлять шаблон.

Теперь рассмотрим практические примеры использования упомянутых выше функций.

Preg_match

В первом примере функция preg_match используется для выполнения простого сопоставления шаблоном для слова guru в заданном URL-адресе.

Читайте также:  Javascript закрыть свое окно браузера

В приведенном ниже коде показан вариант реализации данного примера:

Рассмотрим ту часть кода, которая отвечает за вывод «preg_match (‘/ guru /’, $ my_url)».

«preg_match(…)» — функция PHP match regexp.
«’/Guru/’» — шаблон регулярного выражения.
«$My_url» — переменная, содержащая текст, с которым нужно сопоставить шаблон.

Preg_split

Рассмотрим другой пример, в котором используется функция preg_split.

Мы возьмем фразу и разобьем ее на массив; шаблон предназначен для поиска единичного пробела:

Preg_replace

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

Приведенный ниже код ищет в строке слово guru. Он заменяет его кодом css, который задает цвет фона:

Метасимволы

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

Метасимвол Описание Пример
. Обозначает любой единичный символ, кроме символа новой строки. /./ — все, что содержит один символ.
^ Обозначает начало строки, не включая символ /. /^PH/ — любая строка, которая начинается с PH.
$ Обозначает шаблон в конце строки. /com$/ — guru99.com,yahoo.com и т.д.
* Обозначает любое количество символов, ноль или больше. /com*/ — computer, communication и т.д.
+ Требуется вхождение перед метасимволом символа (ов) хотя бы один раз. /yah+oo/ — yahoo.
Символ экранирования. /yahoo+.com/ — воспринимает точку, как дословное значение.
[…] Класс символов. /[abc]/ — abc.
a-z Обозначает строчные буквы. /a-z/ — cool, happy и т.д.
A-Z Обозначает заглавные буквы. /A-Z/ — WHAT, HOW, WHY и т.д.
0-9 Обозначает любые цифры от 0 до 9. /0-4/ — 0,1,2,3,4.

Теперь рассмотрим сложный PHP regexp пример, в котором проверяется валидность адреса электронной почты:

Результат: адрес электронной почты name@company.com является валидным.

Пояснение шаблона «[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z.]$/] «

«’/…/’» начинает и завершает регулярное выражение.
«^[a-zA-Z0-9._-]» соответствует любым буквам в нижнем или верхнем регистре, цифрам от 0 до 9 и точкам, подчеркиваниям или тире.
«+@[a-zA-Z0-9-]» соответствует символу @, за которым следуют буквы в нижнем или верхнем регистре, цифры от 0 до 9 или дефисы.
«+.[a-zA-Z.]$/» указывает точку, используя обратную косую черту, затем должны следовать любые буквы в нижнем или верхнем регистре, количество символов в конце строки должно быть от 2 до 5.

Метасимволы являются полезными, когда речь идет о сопоставлении на соответствие шаблонам.

Заключение

  • PHP regexp — это алгоритм поиска по шаблону;
  • Регулярные выражения полезны при выполнении проверок валидности, создании HTML-шаблонов, которые распознают теги и т. д.;
  • PHP имеет встроенные функции для работы с регулярными выражениями: preg_match, preg_split и preg_replace;
  • Метасимволы позволяют создавать сложные шаблоны.

Источник

Найти в русском тексте все заглавные буквы и запомнить их порядковые номера

Приветствую. Учу РНР. Как можно реализовать поставленную задачу?

Это определенный «модуль» задачи, суть которой чуть в другом, но для начала нужно научиться выполнять это. В курсе о регулярных выражениях в РНР, только конкретного ответа, как отделить и оставить только заглавные буквы не могу найти. И как определить их порядковые номера в исходной строке?
Ну например, есть строка

Затем в строке $res должно быть «АВДЖ»;
А в массиве $num (0,2,4,6)

В тексте удалить все заглавные буквы русского алфавита
В данном тексте удалить все заглавные буквы русского алфавита

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

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

В данном тексте удалить все заглавные буквы латинского и русского алфавитов
В данном тексте удалить все заглавные буквы латинского и русского алфавитов.

$text = "АбВгДеЖ"; preg_match_all("/[А-ЯЁ]/i", $text, $matches); var_dump($matches);
array(1) < [0]=>array(4) < [0]=>string(1) "А" [1]=> string(1) "В" [2]=> string(1) "Д" [3]=> string(1) "Ж" > >

alexsamos33,
в результате на экране то, что во вложениях

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 /* $a = "Василий Петров"; function mb_str_split( $string )  return preg_split('/(?  >;*/ $text = "АбВгДеЖ"; preg_match_all("/[А-ЯЁ]/i", $text, $matches); var_dump($matches); /* function cut($text)  //$list = mb_str_split($text); $count=0; preg_match_all("/[А-ЯЁ]/i", $text, $matches); var_dump($matches); >; cut($a);*/ ?>

ЦитатаСообщение от lampard14 Посмотреть сообщение

Приветствую. Учу РНР. Как можно реализовать поставленную задачу?
Это определенный «модуль» задачи, суть которой чуть в другом, но для начала нужно научиться выполнять это. В курсе о регулярных выражениях в РНР, только конкретного ответа, как отделить и оставить только заглавные буквы не могу найти. И как определить их порядковые номера в исходной строке?
Ну например, есть строка
Код PHPВыделить код
1
$text = «АбВгДеЖ»;
Затем в строке $res должно быть «АВДЖ»;
А в массиве $num (0,2,4,6)
Помогите, пожалуйста.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 // Скрипт для строки в кодировке utf-8. // Кодировку можно изменить в переменной $charset. $charset = "utf-8"; $str = "АбВгДеЖ"; $len = mb_strlen($str, $charset); $res = ""; $num = []; for ($i = 0; $i  $len; $i++) { $letter = mb_substr($str, $i, 1, $charset); if (mb_strtolower($letter, $charset) !== $letter) { $res .= $letter; $num[] = $i; } } echo '
$res = '.$res.PHP_EOL.'$num = '.print_r($num, true).'

';

$res = АВДЖ $num = Array ( [0] => 0 [1] => 2 [2] => 4 [3] => 6 )

Источник

Оцените статью