gpt4 book ai didi

php - 我怎样才能用逗号分解字符串,而不是这个 («») 引号中的逗号?

转载 作者:可可西里 更新时间:2023-10-31 23:00:50 24 4
gpt4 key购买 nike

我需要用逗号而不是引号 («») 分解字符串。

我有一个像这样的字符串:"5,test2,4631954,Y,«some, string, text.»,299.00 TJS,http://some-link"

我想要这个结果:

[
0 => 5,
1 => test2,
2 => 4631954,
3 => Y,
4 => «some, string, text.»,
5 => 299.00 TJS,
6 => http://some-link
]

尝试使用 preg_split、str_getcsv 但没有得到所需的结果。

$res = str_getcsv($res, ',');
$res = preg_split("/(?<=\)),/", $res);

最佳答案

如果您在要拆分的字符串中没有需要注意的正引号,您可以使用 SKIP-FAIL based 获得所需的内容正则表达式:

$s = "5,test2,4631954,Y,«some, string, text.»,299.00 TJS,http://some-link";
print_r(preg_split('~«[^«»]*»(*SKIP)(*F)|\s*,\s*~', $s));

参见 PHP demo

图案细节

  • «[^«»]*»(*SKIP)(*F) - «« 以外的 0+ 个字符和»,然后»匹配,正则表达式引擎被移动到这个匹配文本的末尾,然后整个文本从当前匹配缓冲区和引擎中移除继续寻找下一场比赛
  • | - 或者
  • \s*,\s* - 包含 0+ 个空格的 ,

输出:

Array
(
[0] => 5
[1] => test2
[2] => 4631954
[3] => Y
[4] => «some, string, text.»
[5] => 299.00 TJS
[6] => http://some-link
)

关于php - 我怎样才能用逗号分解字符串,而不是这个 («») 引号中的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161980/

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