たとえば、「Article」という単語を何度も含むテキストがあります。
私のテキストタイトルArticle1bla bla Article 2 blabla..。
このようにテキストを分割したい:
Text1=Article 1 bla bla
Text2=Article 2 bla bla
...
最も簡単な方法は、explode
http://php.net/manual/de/function.explode.phpを使用することです。
$text = "article 1 text text article 2 text 123";
$articles = explode("article", $text);
次に、各「冠詞」の後にテキストを含む配列があります(冠詞という単語はありません!)
単純:
$articles = explode("article", $text);
$text1 = $articles[0];
$text2 = $articles[1];
分割パターンを見つける代わりに、一致するパターンを探す必要があります。
/Article.*?(?=Article|$)/
に一致Article
し、その後に別Article
の行または行末までのすべてが続きます。
$str = 'some ething Article 1 2 3 Article 5 6 7';
preg_match_all('/Article.*?(?=Article)/', $str, $matches);
print_r($matches[0]);
出力:
Array
(
[0] => Article 1 2 3
[1] => Article 5 6 7
)
編集
後に数字が続くだけを除外するにはArticle
:
preg_match_all('/Article \d+/', $str, $matches);
// $matches[0] contains "Article 1" and "Article 5"
これらのいずれかが役立つことを願っています:
$str = "My text title Article 1 bla bla Article 2 bla bla";
$strArray = explode('Article', $str);
echo '<pre>';
print_r($strArray);
echo '</pre>';
$strArray = split('Article', $str);
echo '<pre>';
print_r($strArray);
echo '</pre>';
$strArray = preg_split("/(?=Article\b)/",$str);
echo '<pre>';
print_r($strArray);
echo '</pre>';