gpt4 book ai didi

php - 如何使用 preg_match() 和 yield(PHP 5.5 生成器语法)迭代正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-04 04:47:04 29 4
gpt4 key购买 nike

我想遍历正则表达式模式的匹配项。

我不想用 preg_match_all()因为它生成了我不需要的所有匹配项的临时数组。我也不喜欢通过构建完整的迭代器类来膨胀。

幸运的是 PHP 5.5 带来了不错的 yield语法,我认为结合 preg_match()应该可以解决这个问题吗?

最佳答案

循环遍历字符串中所有单词的简单示例迭代器:

function wordIterator($str)
{
$offset = 0;
while ( preg_match('/\w+/', $str, $m, PREG_OFFSET_CAPTURE, $offset)) {
$offset = $m[0][1] + strlen($m[0][0]);
yield $m[0][0];
}
}

foreach( wordIterator('Lorem ipsum dolor.') as $word) {
echo $word.'<br>';
}

关于php - 如何使用 preg_match() 和 yield(PHP 5.5 生成器语法)迭代正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021715/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com