gpt4 book ai didi

php - preg_match_all 只匹配一个

转载 作者:行者123 更新时间:2023-12-01 19:39:15 26 4
gpt4 key购买 nike

我正在尝试获取点后的值,并且我想获取所有这些点(每个都是它们自己的键/值)。

以下是我正在运行的内容:

$string = "div.cat.dog#mouse";
preg_match_all("/\.(.+?)(\.|#|$)/", $string, $matches);

当我转储 $matches 时,我得到了这个:

Array
(
[0] => Array
(
[0] => .cat.
)

[1] => Array
(
[0] => cat
)

[2] => Array
(
[0] => .
)

)

项目[1]所在的位置,它仅返回1个值。我期望它返回(对于本例) 2 个项目 catdog。为什么 dog 没有被 preg_match_all 选中?

最佳答案

使用前瞻:

\.(.+?)(?=\.|#|$)

RegEx Demo

正则表达式中的问题是您在左轴上匹配点,并在匹配的右轴上匹配点或散列或输入结束。匹配后,内部指针向前移动,没有点可与下一个单词匹配。

(?=\.|#|$) 是一个正向先行,与这些字符不匹配,但只是向前查找,因此指针保留在 cat 而不是cat.后的点。

关于php - preg_match_all 只匹配一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970274/

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