php,从一个大字符串中获取多个子字符串到一个数组中

php,从一个大字符串中获取多个子字符串到一个数组中,php,Php,我想从一个大字符串中提取几个以特定字符串ex开头的X长度字符串:“Peter was[然后可以是任何东西]”,并将其放入如下数组中 $myString = "Today Peter was in the zoo doin son and so on, yesterday Peter was with Karen eating so on and so on, the day before yesterday Peter was dead jesus christ A

我想从一个大字符串中提取几个以特定字符串ex开头的X长度字符串:“Peter was[然后可以是任何东西]”,并将其放入如下数组中

$myString = "Today Peter was in the zoo doin son and so on, 
    yesterday Peter was with Karen eating so on and so on, 
    the day before yesterday Peter was dead jesus christ AND THE STRING KEEP GOING";

$theResult = [
    'Peter was in the zoo....',
    'Peter was with Karen....',
    'Peter was dead....',
    etc...
]

线索串是Peter was,其余的可以是任何东西很多次

这是您在更改之前的问题的答案

$myString = 'We are writing a string here and abc taking this string xcv we are going to extract ikw some text from it and put it in an array';

preg_match('/.*(abc.{10}).*(xcv.{10}).*(ikw.{10})/', $myString, $theResult);
将在$theResult中放入4项。第0组,即所有组,然后是1、2和3组,用于所需的捕获

array(
  0 => We are writing a string here and abc taking this string xcv we are going to extract ikw some text
  1 => abc taking th
  2 => xcv we are go
  3 => ikw some text
)

更改问题后的答案是:

$theResult = preg_split('/(?=Peter was)/', $myString);
将给出:

array(
  0 => Today
  1 => Peter was in the zoo doin son and so on, yesterday
  2 => Peter was with Karen eating so on and so on, the day before yesterday
  3 => Peter was dead jesus christ AND THE STRING KEEP GOING
)

您可以使用explode函数将字符串转换为数组,如下所示

$myString = "Today Peter was in the zoo doin son and so on, 
    yesterday Peter was with Karen eating so on and so on, 
    the day before yesterday Peter was dead jesus christ AND THE STRING KEEP GOING";
   $exp=explode('Peter was',$myString);
   print_r($exp);

你能介绍一下你的最佳尝试并解释一下失败的地方和原因吗?此外,给出一个输入值和该值的预期输出的示例将使您的案例更加清晰。需要的现实示例和您的想法很少。感谢您的回答,我已经编辑了试图更清晰的示例,我希望已经足够了。但提取的最终限制是什么?这是逗号还是句子的结尾?我已经回答了你的两个问题。很好,但我不需要“今天”这个词,字符串大约20Mb大,“Peter was”将存在4-20次,我需要限制字符串的长度,看起来很有效,我无论如何都要尝试它它效果更好谢谢预期,谢谢,它的结尾是这样的(preg_split(“/(?=”.$spliter.)/”,$wholeText)作为$text){if(str_以($text,$spliter)开头){$myWords[]=substr($text,0,50);}
$myString = "Today Peter was in the zoo doin son and so on, 
    yesterday Peter was with Karen eating so on and so on, 
    the day before yesterday Peter was dead jesus christ AND THE STRING KEEP GOING";
   $exp=explode('Peter was',$myString);
   print_r($exp);