Mb ereg search getregs: примеры (PHP)
mb_ereg_search_getregs: array|falseОсновы функции mb_ereg_search_getregs
Функция mb_ereg_search_getregs() является частью мультибайтового расширения PHP (mbstring) и используется для работы с регулярными выражениями в многобайтовых кодировках. Она возвращает результат последнего успешного поиска с помощью функций mb_ereg_search() или mb_ereg_search_pos().
Эта функция применяется при обработке текстов в таких кодировках как UTF-8, где символы могут занимать более одного байта. Она позволяет корректно работать с регулярными выражениями для многобайтовых строк, что особенно важно для неанглийских языков.
Функция не принимает параметров. Её вызов выглядит как mb_ereg_search_getregs(). Однако она работает в связке с другими функциями мультибайтовых регулярных выражений, которые настраивают параметры поиска.
Простые примеры использования
Поиск слова в тексте:
mb_regex_encoding('UTF-8');
$string = "Пример текста на русском языке";
$pattern = "русском";
if (mb_ereg_search_init($string, $pattern)) {
if (mb_ereg_search()) {
$result = mb_ereg_search_getregs();
print_r($result);
}
}Array
(
[0] => русском
)mb_regex_encoding('UTF-8');
$string = "Иван: 25 лет, Мария: 30 лет";
$pattern = "([^:]+): (\\d+) лет";
mb_ereg_search_init($string, $pattern);
$matches = [];
while ($matches[] = mb_ereg_search_getregs()) {
if (!mb_ereg_search()) break;
}
print_r($matches);Array
(
[0] => Array
(
[0] => Иван: 25 лет
[1] => Иван
[2] => 25
)
[1] => Array
(
[0] => Мария: 30 лет
[1] => Мария
[2] => 30
)
)Альтернативные функции в PHP
Функция preg_match() работает с регулярными выражениями PCRE и поддерживает UTF-8 через модификатор 'u'. Она обычно быстрее и имеет более богатый синтаксис.
Функция mb_ereg_match() проверяет соответствие строки шаблону, но не возвращает найденные подстроки.
mb_ereg_search_getregs() предпочтительнее при обработке текстов в различных многобайтовых кодировках кроме UTF-8. Для UTF-8 лучше использовать preg_match() с модификатором 'u' из-за большей производительности.
Типичные ошибки
// Неправильно:
$string = "Текст";
$pattern = "Т";
mb_ereg_search_init($string, $pattern);
mb_ereg_search();
$result = mb_ereg_search_getregs(); // Может вернуть false// Неправильно:
$result = mb_ereg_search_getregs(); // Вернет falsebool(false)
mb_regex_encoding('UTF-8');
$string = "Текст";
$pattern = "Несуществующий";
mb_ereg_search_init($string, $pattern);
mb_ereg_search();
$result = mb_ereg_search_getregs();
echo $result[0]; // Ошибка если $result = falseИзменения в новых версиях PHP
Добавлена поддержка именованных захватывающих групп в стиле PCRE через синтаксис (?
Улучшена обработка ошибок - некоторые функции теперь выбрасывают исключения вместо возврата false.
Оптимизирована работа с памятью при обработке больших строк.
Расширенные примеры
mb_regex_encoding('UTF-8');
$text = "Контакты: email1@test.com, тел: +7-999-123-45-67, email2@example.org";
$pattern = '([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,})';
mb_ereg_search_init($text, $pattern);
$emails = [];
while (mb_ereg_search()) {
$matches = mb_ereg_search_getregs();
$emails[] = $matches[0];
}
print_r($emails);Array
(
[0] => email1@test.com
[1] => email2@example.org
)mb_regex_encoding('UTF-8');
$text = "Строка 1\nСтрока 2\nСтрока 3";
$pattern = "строка";
mb_ereg_search_init($text, $pattern, 'i'); // 'i' - регистронезависимый поиск
$results = [];
while (mb_ereg_search()) {
$results[] = mb_ereg_search_getregs()[0];
}
print_r($results);Array
(
[0] => Строка
[1] => Строка
[2] => Строка
)mb_regex_encoding('UTF-8');
$text = "Слово1 Слово2 Слово3";
$pattern = '([\\p{Cyrillic}]+\\d)'; // Кириллические символы с цифрой
mb_ereg_search_init($text, $pattern);
$found = [];
while (mb_ereg_search()) {
$found[] = mb_ereg_search_getregs()[0];
}
print_r($found);Array
(
[0] => Слово1
[1] => Слово2
[2] => Слово3
)Аналоги в других языках
Mb ereg search getregs в Python
Модуль re предоставляет методы search и findall:
import re
pattern = r'([^:]+): (\\d+) лет'
text = "Иван: 25 лет, Мария: 30 лет"
matches = re.findall(pattern, text)
print(matches)[('Иван', '25'), ('Мария', '30')]Mb ereg search getregs в Javascript
Метод match у строки с флагом 'g' для глобального поиска:
const text = "Иван: 25 лет, Мария: 30 лет";
const pattern = /([^:]+): (\\d+) лет/g;
let matches = [];
let match;
while ((match = pattern.exec(text)) !== null) {
matches.push(match);
}
console.log(matches);Mb ereg search getregs в MySQL
Функция REGEXP_SUBSTR для извлечения совпадений:
SELECT REGEXP_SUBSTR('Иван: 25 лет', '[^:]+') as name;Иван
PHP mb_ereg_search_getregs function comments
- Php mb ereg search getregs - аргументы и возвращаемое значение
- Функция php mb_ereg_search_getregs - описание
- mb ereg search getregs - примеры
- mb ereg search getregs - похожие методы на php
- mb_ereg_search_getregs на js, python, mysql
- mb ereg search getregs изменения php
- Примеры mb_ereg_search_getregs на php