Php 获取字符串的特定子集

Php 获取字符串的特定子集,php,Php,我得到的回应如下: 嗯。USC01019181 j2log AGOWZBUSKJWNYALQEXG详细信息这是我的回复。 硅。RVC000827503 Si 考虑到应答句可以是“Si”以外的内容,如何才能得到应答的“Si.”部分而忽略其余/重复的部分。我的正则表达式很差,所以我甚至不知道如何从这个开始。请注意,上面的回复是在收到时发布的,带有换行符(没有换行符)等。您可以尝试 $text = array(); $text[] = 'Si. USC01019181 j2log-aGoWZbUSKJ

我得到的回应如下:

嗯。USC01019181 j2log AGOWZBUSKJWNYALQEXG详细信息这是我的回复。 硅。RVC000827503 Si

考虑到应答句可以是“Si”以外的内容,如何才能得到应答的“Si.”部分而忽略其余/重复的部分。我的正则表达式很差,所以我甚至不知道如何从这个开始。请注意,上面的回复是在收到时发布的,带有换行符(没有换行符)等。

您可以尝试

$text = array();
$text[] = 'Si. USC01019181 j2log-aGoWZbUSKJWNYALQQEXG-detail This is my response. ';
$text[] = "Cotton eye joe. USC01019181 j2log-vBaIUwYSOJRZTAPCQISG-detail";

foreach ( $text as $msg ) {
    echo strstr($msg, '.', true) , "\n";
}
输出

Si
Cotton eye joe

如果要grep的文本始终位于响应的第一行,则只需读取第一行并转储其余的。。您可以这样做:
substr($str,0,strpos($str,“\n”))
下面哪一个
什么该死你想要什么??或者你想要
什么见鬼因为它不止一次出现似乎没有任何新行:/该死的。@Baba任何出现不止一次的字符串都可能有效,但正如我所说,我的正则表达式非常糟糕,没有新行newlines@WtotheX如果没有重复的,会发生什么。。将选择什么。。别担心你的正则表达式我会想办法的我试过了,但只会记住第一个字。例如,我得到的回应是“Cotton eye joe.USC01019181 j2log vBaIUwYSOJRZTAPCQISG详细信息”,strstr只得到了“Cotton”Ok,我想我现在知道你想要什么了。。如果可能的话,霍尔德·奥尼想要得到“棉眼乔”,而不是其他任何东西。