私は学術出版物に関する複数のレコードを含む1つの文字列を分割する手段を試そうとしています。一つのレコードと次のレコードを分ける意味のある区切り文字のように便利なものはありません。しかし、私はそれが達成できると信じて、各レコードが日付とコンマとスペースの後に続くパターンを仮定すると(それは単に日付で終わる)追加のレコードが続く場合を除き、 "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()のサンプルでは、分割は機能しません。同じパターンに一致
<?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);
?>
データは、例えば文字列$パブの中に発見されたが、私が今まで取得すべて:私はmanual例1から取られたこの単純なテストは、文字列であることスプリットをもたらすために失敗した理由を理解することはできませんbackは、完全な文字列を含む単一の要素を持つ配列です。私は次に試すものについてアイデアがなくなり、どんな提案にも感謝しています。
したがって、上記の文字列の場合、あなたは日に分割さ2つの要素を取得する必要がありますか? –