如何从点或词的字符串 strat 中删除部分?

How to remove part from string strat from point or word?

我想使用 php lang 从特殊世界中删除部分字符串,例如:

$string1 = "xABCb1/DEF/GHI/GKL";
$string2 = "yABCz/DEF/MNO/PQR";
$string3 = "zABC1112/DEF/STU/VWX";

我想从 (DEF) 中删除之前的所有单词,结果如下所示

$string1 = "DEF/GHI/GKL";
$string2 = "DEF/MNO/PQR";
$string3 = "DEF/STU/VWX";

(DEF) 之前的词不是静态的。它正在改变。我只想让函数清除 (DEF)

之前的所有单词

这里有很多方法可以满足您的需求,例如字符串替换函数、正则表达式等。但这是我使用 strstr() 的方式,因为总是尝试使用内置方法而不是在 first.

处使用正则表达式
$string1 = "xABCb1/DEF/GHI/GKL";
$string2 = "yABCz/DEF/MNO/PQR";
$string3 = "zABC1112/DEF/STU/VWX";
echo  strstr($string1, 'DEF')."\n"; 
echo  strstr($string2, 'DEF')."\n";
echo  strstr($string3, 'DEF');

输出:

DEF/GHI/GKL
DEF/MNO/PQR
DEF/STU/VWX

查看演示:https://eval.in/969773

正则表达式为这种原始字符串操作提供了一个非常强大的工具:

<?php
$input = [
    "xABCb1/DEF/GHI/GKL",
    "yABCz/DEF/MNO/PQR",
    "zABC1112/DEF/STU/VWX"
];
$anchor = "DEF";
$output = preg_replace('|^.*/(DEF/)|', '', $input);
print_r($output);

上面代码的输出显然是:

Array
(
    [0] => DEF/GHI/GKL
    [1] => DEF/MNO/PQR
    [2] => DEF/STU/VWX
)
    $string1 = "xABCb1/DEF/GHI/GKL";
    $string2 = "yABCz/DEF/MNO/PQR";
    $string3 = "zABC1112/DEF/STU/VWX";

    $string1 = ltrim($string1, 'xABCb1/');
    var_dump($string1); 

    $string2 = ltrim($string2, 'yABCz/');
    var_dump($string2);

    $string3 = ltrim($string3, 'zABC1112/');
    var_dump($string3); 

输出

 DEF/GHI/GKL
 DEF/MNO/PQR
 DEF/STU/VWX