Iterating over matches from preg_match_all(迭代来自 preg_match_all 的匹配项)
问题描述
我想弄清楚这个插件在 WordPress 中的机制.我有一个看起来像这样的 preg_match_all 函数:
I am trying to figure out the mechanics of this plugin in WordPress. I have a preg_match_all function that looks like this:
preg_match_all('/(?<=\[\[).+?(?=\]\])/', $content, $matches, PREG_PATTERN_ORDER);
$numMatches = count($matches[0]);
for ($i = 0; $i < $numMatches; $i++) {
  $postSlug = $matches[0][$i];
}
如果我理解正确,count($matches[0]) 假设 $content 中只有一个匹配项.
If I understand this correctly, count($matches[0]) assumes there is only one match in $content.
我的目标是重新编写 for 语句以允许 preg_match_all 脚本中的完整匹配数组.
My goal here is to re-write the for statement to allow for the full array of matches in the preg_match_all script.
我假设我应该用 foreach ($matches as $postSlug) 替换 for 语句,甚至不打扰令人困惑的 $matches[0][$i]代码>在最后.
I'm assuming I should replace the for statement with foreach ($matches as $postSlug) and not even bother with the confusing $matches[0][$i] at the end.
不幸的是,最终输出似乎没有遍历数组中的每个元素.有任何想法吗?谢谢!
Unfortunately the final output does not seem to loop through each element in the array. Any ideas? Thanks!
推荐答案
如果我理解正确,count($matches[0] 假设 $content 中只有一个匹配项.
If I understand this correctly, count($matches[0] assumes there is only one match in $content.
不完全是;$matches[0] 表示整个正则表达式中的匹配数组(而不是 $matches[1],它是匹配数组在正则表达式的第一个匹配组中).因此,count($matches[0]) 是第一个匹配组中的匹配数.
Not quite; $matches[0] represents the array of matches in of the whole regular expression (as opposed to, say, $matches[1], which would be the array of matches in the first match group of the regular expression).  Thus, count($matches[0]) is the number of matches in he first match group.
你可以按照你说的做,将 for 循环重写为 foreach 循环,但这可能不会改变任何东西,因为这两种方法都应该遍历所有$matches[0] 中的元素.您确定您要查找的结果与您的正则表达式匹配吗?
You could do what you've said and rewrite the for loop as a foreach loop, but this likely won't change anything, as both methods should traverse all elements in $matches[0].  Are you certain that the results you're looking for are matched in your regular expression?
这篇关于迭代来自 preg_match_all 的匹配项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:迭代来自 preg_match_all 的匹配项
				
        
 
            
        基础教程推荐
- 使用 scandir() 在目录中查找文件夹 (PHP) 2022-01-01
 - 将变量从树枝传递给 js 2022-01-01
 - php中的foreach复选框POST 2021-01-01
 - PHPUnit 的 Selenium 2 文档到底在哪里? 2022-01-01
 - 主题化 Drupal 7 的 Ubercart “/cart"页 2021-01-01
 - php 7.4 在写入变量中的 Twig 问题 2022-01-01
 - Web 服务器如何处理请求? 2021-01-01
 - 如何在数学上评估像“2-1"这样的字符串?产生“1"? 2022-01-01
 - Yii2 - 在运行时设置邮件传输参数 2022-01-01
 - php中的PDF导出 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
				
				
				
				