我有这些字符串:
Sexy too! -----Original Message----- From: djsgsgjdigjdisgjdigjdis Sent: Tuesday, 09 September 2
heyp -----Original Message----- From: rejgisdgifdogdsgdsgds Sent: Tuesday, 09 September 2
Sexy too! -----Original Message----- From: fdkfdgkifdjgfidsjgidjgdsgdgs Sent: Tuesday, 09 September 2
但是我想在-----Original Message-----
位之后裁剪它们,所以它们只是简单的单词(heyp,性感也是等等)?
我尝试使用str_replace,但它没有用。
如何在PHP中使用preg_replace执行此操作?
答案 0 :(得分:0)
您可以使用preg_replace
,但不需要。请考虑改为使用substr
和strpos
。
$separatorIndex = strpos($originalMessage, '-----Original Message-----');
if ($separatorIndex !== false) {
$originalMessage = substr($originalMessage, 0, $separatorIndex);
}
echo $originalMessage;
答案 1 :(得分:0)
以下内容将为您提供从$matches
部分字符串前面解析的-
变量中的匹配项。
$re = "/(?:(.*)\\s+-+.*)/";
$str = "Sexy too! -----Original Message----- From: djsgsgjdigjdisgjdigjdis Sent: Tuesday, 09 September 2\n\nheyp -----Original Message----- From: rejgisdgifdogdsgdsgds Sent: Tuesday, 09 September 2\n\nSexy too! -----Original Message----- From: fdkfdgkifdjgfidsjgidjgdsgdgs Sent: Tuesday, 09 September 2";
preg_match_all($re, $str, $matches);
答案 2 :(得分:0)
由于您正在处理文字子字符串,因此更快的方法是使用explode:
$result = explode(' -----Original Message----- ', $line, 2)[0]; // PHP >= 5.4
或旧的PHP版本:
list($result,) = explode(' -----Original Message----- ', $line, 2);
答案 3 :(得分:0)
您可以使用preg_replace
这样做。
$string = preg_replace('/\s*-----Original Message-----.*/', '', $string);
或者您可以使用substr
:
$string = substr($string, 0, strpos($string, ' -----Original Message-----'));