我試圖測試一種方法,我可以分解包含多個關於學術出版物的記錄的單個字符串。作爲一個有意義的分隔符,分隔一個記錄和下一個記錄是沒有用的。但我相信這可以完成,因爲每個記錄以日期後跟逗號和空格結尾(除非沒有附加記錄,在這種情況下僅以日期結束),例如「YYYY-MM -DD「。preg_match測試成功,但preg_split失敗
我已經開始用一個簡單的測試,涉及的字符串,並確認正則表達式識別我要尋找的模式:
$date="2012-09-12, ";
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]), $/",$date))
{
echo("yes");
}else{
echo("no");
然而,當我嘗試通過把它帶到下一步真實數據和preg-split()的樣本,分割不起作用。我不明白爲什麼這個簡單的測試,從例1中的manual採取未能導致該字符串被拆分:
<?php
$pubs="L.J. Santodonato, Y. Zhang, M. Feygenson, C.M. Parish, M.C. Gao, R.J. Weber, J.C. Neuefeind, Z. Tang, P.K. Liaw~Deviation from high-entropy configurations in the atomic distributions of a multi-principal-element alloy.~NATURE COMMUNICATIONS~6~2015~~~~0~~0~~2015-11-21, S. Liu, M.C. Gao, P.K. Liaw, Y. Zhang~Microstructures and mechanical properties of AlxCrFeNiTi 0.25 alloys.~JOURNAL OF ALLOYS AND COMPOUNDS~619~2015~610~~~0~~0~~2015-11-21";
$pubsArray = preg_split("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]), $/", $pubs);
print_r($pubsArray);
?>
數據匹配相同模式的例子字符串$酒吧內發現的,但所有我曾經得到back是一個包含完整字符串的單個元素的數組。關於接下來要做什麼,我已經沒有想法,並且會很感激任何建議。
所以在上面的字符串的情況下,你應該得到兩個元素的日期分裂? –