PHP 日本会议 2024
添加备注

用户贡献的备注 2 个备注

dulao5 at gmail dot com
17 年前
mb_ereg_search & 子模式
使用循环
<?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(); //获取第一个结果
do
{
var_dump($r[0]);
$r = mb_ereg_search_regs();//获取下一个结果
}
while(
$r);
}
?>
Christian
3 年前
基于 dulao 的答案的“match_all”辅助函数。有人可能会觉得它有用……

<?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;
}
?>
To Top