gpt4 book ai didi

php - 字符串结尾时模式不匹配

转载 作者:行者123 更新时间:2023-12-04 09:54:27 26 4
gpt4 key购买 nike

我想匹配以“#”开头并以空格或行尾结尾的字符串。我正在使用下面的函数来找到它。

function getStringsBetween($string, $start, $end)
{
$pattern = sprintf('/%s(.*?)%s/',preg_quote($start), preg_quote($end));
preg_match_all($pattern, $string, $matches);
return $matches[1];
}

我正在使用以下搜索
$y = "@!$+$+$+#+ hsjsjenshsjsjsj#hshsjsj ndjdjjdjdn #sem"
$output = getStringsBetween($y,"#"," ");
print_r($output);

输出如下所示。
Array ( [0] => + [1] => hshsjsj )

这里缺少#sem,因为它是字符串的结尾并且与模式不匹配。我如何将字符串的结尾包含为空格或行尾。

最佳答案

更改您的模式,使其具有 $end值,或行尾 $ .

$pattern = sprintf('/%s(.*?)%s/',preg_quote($start), '(?:' . preg_quote($end) . '|$)');

https://3v4l.org/1oqhc

关于php - 字符串结尾时模式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61947949/

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