作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此处为正则表达式/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/
我是一名优秀的程序员,十分优秀!