我有两个必须从中提取数据的字符串。我preg_replace
用来做这个。但是,我不确定如何制作,以便最后一个\s\:\:
可以匹配或不匹配。我试过{0,}
了,但是它与第一个字符串不匹配,没有它最后一个字符串不匹配。
$strings = array(
'13.02 - foobar1 bla bla :: 08.03.2013 - 23.12.2013',
'06.05 21:00 - " foobar2 bla bla "',
)
foreach($strings as $data){
$pattern = '/^(\d){2}\.(\d){2}\s?(\d){0,2}(\:)?(\d){0,2}\s\-(.*)(\s\:\:.*)?/i';
echo preg_replace($pattern, '$6', $data);
}
我希望将这两个字符串作为最终输出:
"foobar1 bla bla"
"" foobar2 bla bla ""