gpt4 book ai didi

php - 混合 preg_match、anchor 和 offset

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:09 25 4
gpt4 key购买 nike

我有 $string = "hello world, world!"; 并且我只需要匹配 first world,所以我也有偏移量。它从第 6 个字符开始。 preg_match() 有五个参数:字符串pattern、字符串subject、引用数组匹配、int flags 和int offset>.

我的模式是:$pattern = "/^world/";

如果我执行 preg_match($pattern, $string, $string_match, 0, 6),基本上我希望这可行,因为“ anchor ”将检查我的字符串的第 6 个字母,因为我设置了偏移量。 但不是! 它不起作用。哦!

一个简单的修复是,我没有为 preg_match() 函数设置偏移量,而是使用 substr() 而不是 $string,喜欢它:preg_match($pattern, substr($string, 6), $string_match)

是否可以修复我的第一个代码以正确使用带有 preg_match() 偏移量的 anchor ?还是唯一解?

最佳答案

您使用了错误的 anchor ;为了更好地使用偏移量,您需要 \G,最后一个匹配位置 anchor :

$string = 'hello world, world!';

var_dump(preg_match('/\Gworld/', $string, $matches, 0, 6)); // int(1)

有趣的是,documentation声明不支持 \G,但它肯定是 supported自 4.3.3 以来可靠。

关于php - 混合 preg_match、anchor 和 offset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27516400/

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