Des*_*ume 1 php regex string preg-replace-callback
这可能是一个愚蠢的问题,但为什么preg_replace_callback将每个匹配项放入单元素数组中并将其传递给回调函数,所以我必须使用它$matches[0]来处理匹配项,为什么它不将匹配项作为字符串传递给回调函数?
因为您可以有捕获组,并且数组中的每个元素都是捕获组捕获的内容。索引 0 处的元素始终是整个匹配项。
例如,给定一个匹配MM/DD/YYYY日期的正则表达式,您可以将日期的每个部分放入其自己的捕获组中,也许像这样天真:
(\d{2})/(\d{2})/(\d{4})
Run Code Online (Sandbox Code Playgroud)
然后,您将拥有一个类似于以下内容的匹配数组:
[0] - MM/DD/YYYY
[1] - MM
[2] - DD
[3] - YYYY
Run Code Online (Sandbox Code Playgroud)