我正在尝试按不同标准分隔一些字符串,但我无法获得所需的结果。
以下是3个例子:
$ppl[0] = "Balko, Vlado \"Panelбk\" (2008) {Byt na tretom (#1.55)}";
$ppl[1] = "'Abd Al-Hamid, Ja'far A Two Hour Delay (2001)";
$ppl[2] = "'t Hoen, Frans De reьnie (1963) (TV)";
我目前正在使用它进行最后2:
$pattern = '#,|\t|\(#'
但我会得到空的空间。 结果:
Array ( [0] => 'Abd Al-Hamid [1] => Ja'far [2] => A Two Hour Delay [3] => 2001) )
Array ( [0] => 't Hoen [1] => Frans [2] => [3] => De reünie [4] => 1963) [5] => TV) )
至于第一个表达式,我使用了另一个模式,但我仍然得到空格。有什么想法吗?
编辑: 谢谢这确实有帮助。我尝试在第一个字符串上使用修改版本:
$pattern4 = '#[",\t]+|[{}]+|[()]+#';
但是我仍然得到一个空白的地方:
Array ( [0] => Balko [1] => Vlado [2] => Panelák [3] => [4] => 2008 [5] => [6] => Byt na tretom [7] => #1.55 [8] => [9] => )
我该怎么办?我认为“和括号引起了问题,但我不知道如何解决它。
答案 0 :(得分:0)
我猜测你在第二个和第三个示例字符串中有两个选项卡作为分隔符。 (在这里看不到,SO编辑器将它们转换为空格。)
但在这种情况下你可以稍微调整你的正则表达式:
$pattern = '#,|\t+|\(#'
甚至更简单:
$pattern = '#[,\t(]+#'
而交替使用btw,只是在结果数组上应用array_filter()
来删除空条目。