mb_ereg_search & subpatterns
use loop:
<?php
$str = "中国abc + abc ?!?!字符# china string";
$reg = "\w+";
mb_regex_encoding("UTF-8");
mb_ereg_search_init($str, $reg);
$r = mb_ereg_search();
if(!$r)
{
echo "null\n";
}
else
{
$r = mb_ereg_search_getregs(); //get first result
do
{
var_dump($r[0]);
$r = mb_ereg_search_regs();//get next result
}
while($r);
}
?>mb_ereg_search
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mb_ereg_search
Референца за `function.mb-ereg-search.php` со подобрена типографија и навигација.
mb_ereg_search
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
mb_ereg_search — Мултибајт регуларен израз за претходно дефиниран мултибајт стринг
= NULL
Извршува мултибајт совпаѓање на регуларен израз за претходно дефиниран мултибајт стринг.
Параметри
pattern-
Низата за пребарување.
options-
Шемата за пребарување. mb_regex_set_options() Опцијата за пребарување. Види
Вратени вредности
mb_ereg_search() returns true ако мултибајт стринг се совпаѓа со регуларниот израз, или false
инаку. На string за совпаѓање се поставува со
mb_ereg_search_init(). Ако
pattern не е специфицирано, се користи претходното.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
pattern and options се сега null.
|
Белешки
Забелешка:
за објаснување. mb_regex_encoding() Внатрешно кодирање или кодирање на знаци специфицирано од
Види Исто така
- mb_regex_encoding() - Постави/земи ја кодировката на знаци за мултибајт регуларни изрази
- mb_ereg_search_init() - Поставување стринг и регуларен израз за мултибајт совпаѓање на регуларен израз
Белешки од корисници 2 забелешки
A 'match_all' helper function based on dulao's answer. Someone might find it useful...
<?php
function mb_ereg_match_all($pattern, $subject, &$matches, $options = '', $setOrder = false, $offset = 0) {
if (!mb_ereg_search_init($subject, $pattern, $options)) {
return false;
}
if ($offset != 0 && !mb_ereg_search_setpos($offset)) {
return false;
}
$matches = [];
if (!mb_ereg_search()) {
return 0;
}
$regs = mb_ereg_search_getregs();
$count = 0;
do {
$count++;
if ($setOrder) {
foreach ($regs as $key => $val) {
$matches[$key][] = $val;
}
} else {
$matches[] = $regs;
}
$regs = mb_ereg_search_regs();
}
while($regs);
return $count;
}
?>