gpt4 book ai didi

php - preg_split : splitting a string according to a very specific pattern

转载 作者:行者123 更新时间:2023-12-01 21:59:25 25 4
gpt4 key购买 nike

此处为正则表达式/PHP n00b。我正在尝试使用 PHP“preg_split”函数...

我有一些遵循特定模式的字符串,我想根据该模式拆分它们。

字符串示例:

CADAVRES [FILM] (Canada : Québec, Érik Canuel, 2009, long métrage) FICTION

期望的结果:

[0]CADAVRES
[1]FILM
[2]Canada : Québec
[3]Érik Canuel
[4]2009
[5]long métrage
[6]FICTION

分隔符(按出现顺序):

" ["
"] ("
", "
", "
", "
") "

如何正确编写正则表达式?

这是我尝试过的:

<?php
$pattern = "/\s\[/\]\s\(/,\s/,\s/,\s/\)\s/";
$string = "CADAVRES [FILM] (Canada : Québec, Érik Canuel, 2009, long métrage) FICTION";
$keywords = preg_split($pattern, $string);
print_r($keywords);

它不起作用,我不明白我做错了什么。再一次,我刚刚开始尝试处理正则表达式和 PHP,所以是的......有太多转义字符,我看不对......

非常感谢!

最佳答案

我设法使用 preg_match_all 制定了一个解决方案:

$input = "CADAVRES [FILM] (Canada : Québec, Érik Canuel, 2009, long métrage) FICTION";
preg_match_all("|[^-\\[\\](),/\\s]+(?:(?: :)? [^-\\[\\](),/]+)?|", $input, $matches);
print_r($matches[0]);

Array
(
[0] => CADAVRES
[1] => FILM
[2] => Canada : Québec
[3] => Érik Canuel
[4] => 2009
[5] => long métrage
[6] => FICTION
)

上面的正则表达式将术语视为不同于方括号、逗号、圆括号等的任何字符。它还允许两个单词术语,中间可能有一个冒号分隔符。

关于php - preg_split : splitting a string according to a very specific pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54247391/

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