0
我有兩個字符串,我必須從中提取數據。我使用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 ""
您當前的代碼工作正常,並匹配兩個字符串。檢查[this](http://codepad.org/h0ofNAuO)。但是,在'$ strings'的聲明中缺少';'。 –
對於第一個字符串,我需要刪除「:: 08.03.2013 - 23.12.2013」部分 – WraithLux
做一個輸入的例子和準確的預期輸出將有很大的幫助... – Enissay