1

だから私はいくつかのテキストを持っています:

これは文です。これは別の文です。これは 3 番目の文です。

各文を配列または新しい行に入れる方法を見つけようとしています。このようなもの:

[0] => これは文章です。

[1] =>これは別の文です。

[2] =>これは 3 番目の文です。

これを行うのは難しいことは承知していますが、完全な証拠である必要はありません。したがって、間違った場所で分割されたときに、単語または文の半分だけで構成される奇数の値を取得しても問題ありません。つまり、基本的には「.」、「?」で分割する必要があります。と "!"。

preg_match_all() をいじってみましたが、正規表現について理解するのに苦労しています。

これは私がこれまで持っているものですが、うまくいきません。おわかりのように、正規表現に関する私の知識は非常に不安定です。誰かが私を正しい方向に向けることができれば、私はとても感謝しています. ありがとうございました。

<?php

$string = "This is a sentence. This is another sentence. This is a third sentence .";

preg_match_all('/\.(.*)>\./', $string, $matches);
print_r($matches);
?>
4

1 に答える 1

1

文は大文字で始めるという条件を追加しました。最後に複数の句読点をキャプチャしません。

preg_match_all('/[AZ][^!?.]+[!?.]/', $string, $matches, PREG_PATTERN_ORDER);
于 2012-08-26T09:34:09.690 に答える