Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据特定单词拆分文本_Php_Text_Split - Fatal编程技术网

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

Php 如何根据特定单词拆分文本,php,text,split,Php,Text,Split,我有一个文本多次包含“Article”一词,例如: 我的文字标题文章1布拉布拉布拉第2布拉布拉布拉 我想像这样拆分文本: Text1=Article 1 bla bla Text2=Article 2 bla bla ... 这可以通过以下方式实现: $parts = preg_split("/(?=Article\b)/",$text); 这可以通过以下方式完成: $parts = preg_split("/(?=Article\b)/",$text); 最简单的方法是使用explode

我有一个文本多次包含“Article”一词,例如:

我的文字标题文章1布拉布拉布拉第2布拉布拉布拉

我想像这样拆分文本:

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

这可以通过以下方式实现:

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

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

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

最简单的方法是使用
explode


然后,在每个“article”后面都有一个文本数组(不包括article!)

最简单的方法是使用
分解

然后在每个“article”后面有一个数组,其中包含文本(不包含article!)

简单:

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

$text1 = $articles[0];

$text2 = $articles[1];
简单:

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

$text1 = $articles[0];

$text2 = $articles[1];

与其尝试查找拆分模式,不如查找匹配的模式:

/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
)
编辑

只需过滤掉紧跟数字的
文章

preg_match_all('/Article \d+/', $str, $matches);
// $matches[0] contains "Article 1" and "Article 5"

与其尝试查找拆分模式,不如查找匹配的模式:

/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
)
编辑

只需过滤掉紧跟数字的
文章

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>';
$str=“我的文本标题文章1 bla bla第2 bla bla bla”;
$strArray=爆炸($Article',$str);
回声';
印刷费($strArray);
回声';
$strArray=拆分('Article',$str);
回声';
印刷费($strArray);
回声';
$strArray=preg_split(“/(?=Article\b)/”,$str);
回声';
印刷费($strArray);
回声';

希望其中一个有帮助:

     $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>';
$str=“我的文本标题文章1 bla bla第2 bla bla bla”;
$strArray=爆炸($Article',$str);
回声';
印刷费($strArray);
回声';
$strArray=拆分('Article',$str);
回声';
印刷费($strArray);
回声';
$strArray=preg_split(“/(?=Article\b)/”,$str);
回声';
印刷费($strArray);
回声';

问题不清楚。
bla-bla
是文章标题的一部分吗?它们总是带有数字后缀的文章吗?标题可以是多个单词吗?重新表述你的问题;看看这是否仍然是你的意思:)问题不清楚。
bla-bla
是文章标题的一部分吗?它们总是带有数字后缀的文章吗?标题可以是多个单词吗?重新表述你的问题;看看这是否仍然是你的意思:)