我有一个文章,其中多次包含“文章”一词,例如:
我的文字标题第1条bla bla第2条bla bla ...
我想像这样分割文字:
Text1=Article 1 bla bla
Text2=Article 2 bla bla
...
答案 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)
答案 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>';