0

この文字列の正規表現の一致を考え出そうとしていますが、髪の毛が抜けています。これは、これまでのパターン例です。


<?php
    preg_match_all('/\(.*?\)*([^,\s][^\,]*[^.\s])/', 'Alpha Romeo (11:00), Honda (11:00 & 12:00), Toyota (11:00, 12:00 & 8:00)', $result);
    print_r($result);
?>

望ましい出力:


Array
(
    [0] => Alpha Romeo (11:00),
    [1] => Honda (11:00 & 12:00),
    [2] => Toyota (11:00, 12:00 & 8:00)
)

4

2 に答える 2

3
preg_match_all('/[,\s]+(.*?\))/', 'Alpha Romeo (11:00), Honda (11:00 & 12:00), Toyota (11:00, 12:00 & 8:00)', $result);

そして、ここに出力があります:

Array ( 
    [0] => Romeo (11:00) 
    [1] => Honda (11:00 & 12:00) 
    [2] => Toyota (11:00, 12:00 & 8:00)
)

PS : こちらを出力して$result[1]います。


編集

最後の 1 つはAlpha、最初の試合を逃しました。より良いパターンは次のとおりです。

<?php
    preg_match_all('/,?(.*?\))/', 'Alpha Romeo (11:00), Honda (11:00 & 12:00), Toyota (11:00, 12:00 & 8:00)', $result);
    print_r($result);
?>

リンク

于 2013-03-16T08:05:28.070 に答える
0

これを試して:

$str = 'Alpha Romeo (11:00), Honda (11:00 & 12:00), Toyota (11:00, 12:00 & 8:00)';

preg_match_all('#[^,\s]{2}.*?\(.*?\)#', $str, $matches);

echo var_export($matches, TRUE);

出力:

array (
  0 => array (
    0 => 'Alpha Romeo (11:00)',
    1 => 'Honda (11:00 & 12:00)',
    2 => 'Toyota (11:00, 12:00 & 8:00)',
  ),
)
于 2013-03-16T08:13:40.877 に答える