如何从字符串中删除单词后的所有文本


How To Remove all text after a word from a strings?

如何从段落中删除一个单词及之后的单词?

e。g:

如何从字符串中删除这个(测试)单词之后的所有文本?

ABC DEF GHEE JUL *test MON ...* 

我想删除test MON… from my string

ABC DEF GHEE JUL

谢谢

可以轻松拆分

$string = "ABC DEF GHEE JUL test MON";
$splitted = explode("test", $string);
$result = $splitted[0]; //ABC DEF GHEE JUL

最简单的方法是:

$result = substr($string, 0, strpos($string, 'test'));

您可以创建函数并在以后重用它们,如:

$test1=removeAfterFirst("ABC DEF GHEE JUL test MON ...","test ");
// $test1 is "ABC DEF GHEE JUL "
$test2=removeAfterLast("ABC DEF ABC GHE","ABC");
// $test2 is "ABC DEF "

功能:

public static function removeAfterFirst($text,$value)
{
    $firstOccurence=strpos($text,$value);
    if($firstOccurence===false)
        return $text;
    return substr($text,0,$firstOccurence);
}
public static function removeAfterLast($text,$value)
{
    $lastOccurence=strrpos($text,$value);
    if($lastOccurence===false)
        return $text;
    return substr($text,0,$lastOccurence);
}

您可以尝试这样做:

<?php
    $string = "ABC DEF GHEE JUL test MON ...";
    $clean1 = preg_replace("#('s[a-z]+?).+$#", "", $string);
    var_dump($clean1);  //<== YIELDS: string 'ABC DEF GHEE JUL' (length=16)