gpt4 book ai didi

php - 为什么 preg_match 匹配最后一个子模式而不是第一个?

转载 作者:行者123 更新时间:2023-12-04 19:20:57 25 4
gpt4 key购买 nike

我试图从可以包含许多十六进制地址的行中匹配第一个十六进制地址,但我却得到了最后一个。

我的要求是:

preg_match('%.*(0x[0-9a-f]{8}){1}.*%', $v, $current_match);

$v 是这样的字符串:

Line: 2 libdispatch.dylib 0x36eaed55 0x36eae000 + 3413

我想得到 0x36eaed55,但我的 $current_match[1] 正则表达式返回 0x36eae000

根据 php 文档:$matches[1] 将包含与第一个捕获的带括号的子模式相匹配的文本,依此类推。

最佳答案

第一个 .* 尝试尽可能匹配,因此它也匹配您的第一个十六进制。尝试让它不贪心:.*?

关于php - 为什么 preg_match 匹配最后一个子模式而不是第一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8765687/

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