2011-12-15 10 views
0

私はいくつかの文字列を別の基準で区切ってみようとしていますが、目的の結果を得ることができません。私は現在、最後の2のためにこれを使用してい異なる条件でPHPのREGEXを別々に

$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)"; 

はここ3例であり

$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)) 

。何か案は?

編集: ありがとうございました。本当に助かりました。私は何をすべき

Array ([0] => Balko [1] => Vlado [2] => Panelák [3] => [4] => 2008 [5] => [6] => Byt na tretom [7] => #1.55 [8] => [9] =>) 

:私はまだ空きスペースを取得しかし

$pattern4 = '#[",\t]+|[{}]+|[()]+#'; 

:私は、最初の文字列に変更したバージョンを使用してみましたか? "と括弧は問題を引き起こしていると思いますが、それを修正する方法はわかりません。

答えて

0

2番目と3番目の文字列に2つのタブがあると思いますここでは、SOエディタがスペースに変換して)

しかし、あなたが、その場合には、わずかにあなたの正規表現を適応させることもできます。

でも
$pattern = '#,|\t+|\(#' 

または単純に:

$pattern = '#[,\t(]+#' 

、アルテrnatve、btwは結果配列にarray_filter()を適用するだけで空のエントリを削除します。

関連する問題