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

时间:2018-03-11 09:00:42

标签: php string str-replace

我想使用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)

3 个答案:

答案 0 :(得分:1)

有很多方法可以做你想要的事情,比如字符串替换函数,正则表达式等等。但这是我使用strstr()的方式,因为我总是尝试使用内置方法,而不是在第一个使用正则表达式。

matplotlib

<强>输出:

$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');

请参阅演示:https://eval.in/969773

答案 1 :(得分:0)

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

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

上述代码的输出显然是:

Array
(
    [0] => DEF/GHI/GKL
    [1] => DEF/MNO/PQR
    [2] => DEF/STU/VWX
)

答案 2 :(得分:0)

    $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