如何根据特定单词拆分文本

时间:2012-11-19 15:05:03

标签: php text split

我有一个文章,其中多次包含“文章”一词,例如:

  

我的文字标题第1条bla bla第2条bla bla ...

我想像这样分割文字:

Text1=Article 1 bla bla
Text2=Article 2 bla bla
...

5 个答案:

答案 0 :(得分:2)

最简单的方法是使用explode http://php.net/manual/de/function.explode.php

$text = "article 1 text text article 2 text 123";
$articles = explode("article", $text);

然后你有一个数组,每个“文章”后面都有文字(没有文章!)

答案 1 :(得分:1)

简单:

$articles = explode("article", $text);

$text1 = $articles[0];

$text2 = $articles[1];

答案 2 :(得分:0)

这可以通过以下方式完成:

$parts = preg_split("/(?=Article\b)/",$text);

Docs

答案 3 :(得分:0)

您应该寻找匹配的模式,而不是尝试找到拆分模式:

/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"

答案 4 :(得分:0)

希望其中一项有所帮助:

     $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>';