我试图想出这个字符串的正则表达式匹配,但我失去了头发。 这是我到目前为止的示例模式。
<?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)
)
答案 0 :(得分:3)
preg_match_all('/[,\s]+(.*?\))/', 'Alpha Romeo (11:00), Honda (11:00 & 12:00), Toyota (11:00, 12:00 & 8:00)', $result);
这是output:
Array (
[0] => Romeo (11:00)
[1] => Honda (11:00 & 12:00)
[2] => Toyota (11:00, 12:00 & 8:00)
)
P.S。:我在这里输出$result[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);
?>
答案 1 :(得分: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)',
),
)