gpt4 book ai didi

php - 如何从php中的字符串生成数组集

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:28 25 4
gpt4 key购买 nike

这是我的字符串

#Jhon:经理 #Mac:项目经理 #Az:所有者

我想要这样的数组

$array = ['0' => 'Manager', '1' => 'Project Manager', '2' => 'Owner']

我试过了,但每次只返回“经理”

$string = '#Jhon: Manager #Mac: Project Manager #Az: Owner';
getText($string, ':', ' #')
public function getText($string, $start, $end)
{
$pattern = sprintf(
'/%s(.+?)%s/ims',
preg_quote($start, '/'), preg_quote($end, '/')
);

if (preg_match($pattern, $string, $matches)) {
list(, $match) = $matches;
echo $match;
}
}

最佳答案

您可以preg_split 内容并使用以下解决方案:

$re = '/\s*#[^:]+:\s*/';
$str = '#Jhon: Manager #Mac: Project Manager #Az: Owner';
$res = preg_split($re, $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($res);

参见 PHP demo和一个 regex demo .

图案细节:

  • \s* - 0+ 个空格
  • # - 文字 # 符号
  • [^:]+ 匹配除 :
  • 以外的 1+ 个字符
  • : - 冒号
  • \s* - 0+ 个空格。

请注意 preg_split function 中的 -1$limit 参数告诉 PHP 拆分任意次数(如有必要)并且 PREG_SPLIT_NO_EMPTY 将丢弃所有空匹配项(如果您需要保留空值,则可以删除此匹配项匹配,这取决于您需要进一步做什么)。

关于php - 如何从php中的字符串生成数组集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43803914/

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