X
Меню сайта
GreenB
Войдите с помощью одной из соцсетей
Или с помощью нашего сайта
Зарегистрироваться Войти
Обратная связь

Обратная связь

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

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

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

Одна из главных особенностей заключается в том, что они позволяют задать сложные условия сопоставления с помощью специальных символов и метасимволов. Например, символ . соответствует любому символу, d соответствует любой цифре, w соответствует любой букве или цифре, + указывает на повторение предыдущего символа один или несколько раз, а * указывает на повторение предыдущего символа ноль или более раз.

PHP предоставляет встроенные функции для работы с регулярными выражениями, такие как preg_match(), preg_match_all(), preg_replace() и другие. Они позволяют выполнять сопоставление, извлечение и замену текста на основе заданного регулярного выражения.

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

Валидация электронной почты

$email = "example@example.com";
if (preg_match("/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/", $email)) {
    echo "Email is valid.";
} else {
    echo "Invalid email format.";
}

Поиск и замена

$text = "The quick brown fox jumps over the lazy dog.";
$replacedText = preg_replace("/brown fox/i", "red cat", $text);
echo $replacedText;

Извлечение чисел из строки

$string = "I have 10 apples and 5 oranges.";
preg_match_all("/d+/", $string, $matches);
print_r($matches[0]);

Проверка формата даты

$date = "2023-05-17";
if (preg_match("/^d{4}-d{2}-d{2}$/", $date)) {
    echo "Date format is valid.";
} else {
    echo "Invalid date format.";
}

Валидация URL-адреса

$url = "http://www.example.com";
if (preg_match("/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/", $url)) {
    echo "URL is valid.";
} else {
    echo "Invalid URL format.";
}

 Проверка наличия цифр в строке

$string = "Hello123";
if (preg_match("/d/", $string)) {
    echo "The string contains at least one digit.";
} else {
    echo "The string does not contain any digits.";
}

Валидация номера телефона в формате XXX-XXX-XXXX

$phone = "123-456-7890";
if (preg_match("/^d{3}-d{3}-d{4}$/", $phone)) {
    echo "Phone number is valid.";
} else {
    echo "Invalid phone number format.";
}

 Извлечение хештегов из строки

$string = "This is a #sample #string with #hashtags.";
preg_match_all("/#w+/", $string, $matches);
print_r($matches[0]);

Проверка, начинается ли строка с определенного слова

$string = "Hello, world!";
$word = "Hello";
if (preg_match("/^$word/", $string)) {
    echo "The string starts with "$word".";
} else {
    echo "The string does not start with "$word".";
}

Поиск и извлечение всех ссылок из HTML-кода

$html = '<a href="https://www.example1.com">Link 1</a> <a href="https://www.example2.com">Link 2</a>';

preg_match_all('/<as+href="([^"]+)"/', $html, $matches);

print_r($matches[1]);

Поиск IP-адресов в тексте

$text = "The server IP address is 192.168.0.1 and the client IP address is 10.0.0.1.";

preg_match_all("/b(?:d{1,3}.){3}d{1,3}b/", $text, $matches);

print_r($matches[0]);

 Проверка, является ли строка палиндромом (читается одинаково слева направо и справа налево)

$string = "madam";
if (preg_match("/^(.)(.?)(.?)(.?)(.?).*54321$/", $string)) {
    echo "The string is a palindrome.";
} else {
    echo "The string is not a palindrome.";
}

14. Поиск и извлечение всех слов, начинающихся с заглавной буквы:

$string = "This is a Sample Text with Capitalized Words.";

preg_match_all("/b[A-Z]w*b/", $string, $matches);

print_r($matches[0]);

Поиск и замена дат в формате DD/MM/YYYY на MM/DD/YYYY

$text = "Today is 17/05/2023. Tomorrow is 18/05/2023.";

$replacedText = preg_replace("/(d{2})/(d{2})/(d{4})/", "$2/$1/$3", $text);

echo $replacedText;

Извлечение картинок из текста

$text = "This is some text with an image <img src="image1.jpg"> and another image <img src="image2.jpg"> ;

preg_match_all('/<img[^>]*?src=["\']?([^"\'\s>]+)["\']/is', $text, $matches);

print_r($imageUrls);

В этом примере мы используем регулярное выражение /]+src="([^">]+)"/, которое ищет все вхождения тега и извлекает значения атрибута src.

Функция preg_match_all() выполняет сопоставление с регулярным выражением и возвращает массив всех найденных URL-адресов изображений.

После выполнения кода, массив $imageUrls будет содержать список URL-адресов изображений, найденных в тексте.

Обратите внимание, что использование регулярных выражений для обработки HTML-кода может быть недостаточно надежным в сложных сценариях. Для более сложных задач рекомендуется использовать специализированные библиотеки для парсинга HTML, такие как DOMDocument или библиотеки для работы с регулярными выражениями, предназначенные специально для обработки HTML-кода.

🔥
0
🚀
0
0
👎
0
Новое на сайте