删除一个字符串并获取右侧的任何内容

时间:2016-07-15 07:36:17

标签: php string split str-replace

我有像

这样的字符串

Priv.-道茨。医生博士。苏珊。 Andreas Pailo

博士。 MED。 Sumat Dagdelen

教授。医生博士。 Sandrien Axaigeler

我如何删除“医学博士”。并获得字符串的右侧,万一我会得到'苏珊。 Andreas Pailo'去掉医学博士后。

问题可能在某处重复,但经过多次尝试后却找不到。

请建议, 谢谢

9 个答案:

答案 0 :(得分:4)

要在某些字符串后使用explode()作为

来获取正确的字符串
$data="Priv.-Doz. Dr. med. Susan. Andreas  Pailo";
$search="Dr. med.";
$result = explode($search, $data);
echo  end($result);//Susan. Andreas  Pailo

答案 1 :(得分:1)

 $str = 'Prof. Dr. med. Sandrien  Axaigeler';
 $str = str_replace("Dr. med.","",$str);
 $str = str_replace("Prof.","",$str);
 echo $str;

答案 2 :(得分:1)

使用substrstrpos函数的简短解决方案:

$str = "Priv.-Doz. Dr. med. Susan. Andreas  Pailo";
$seach_str = "Dr. med.";
echo substr($str, strpos($str, $seach_str) + strlen($seach_str));
// "Susan. Andreas  Pailo"

答案 3 :(得分:0)

尝试使用str_replace

$value = str_replace("Dr. med.","",$value );

答案 4 :(得分:0)

它应该工作。单独搜索你想要的单词。

 $string = 'Prof. Dr. med. Sandrien  Axaigeler';
 $string = str_replace("Dr. med.","",$string );
 $string = str_replace("Prof.","",$string );
 print_r($string);

答案 5 :(得分:0)

尝试以下方法:

$str = 'Prof. Dr. med. Sandrien  Axaigeler';

$name_str = str_replace("Prof.","",$str);
$name_str = str_replace("Priv.-Doz.","",$name_str);
$name_str = str_replace("Dr. med.","",$name_str);
$name_str = trim($name_str);

答案 6 :(得分:0)

我可以假设您要求在 博士之后提取字符串的一部分。 med。,并不一定需要保留字符串的其余部分 - 包括前面的内容?

如果是,您可以执行以下操作:

  1. 找到博士的位置。 med。使用strpos
  2. 使用{$ 3}从$ start参数中步骤1中找到的位置提取子字符串。
  3. 一个例子可能是:

    <?php
    $InputString = "Priv.-Doz. Dr. med. Susan. Andreas  Pailo";
    $PositionOfSearch = strpos($InputString, "Dr. med.");
    $ExtractedString = substr($InputString, $PositionOfSearch);
    ?>
    

    虽然您可能需要调整 $ PositionOfSearch 值,因为PHP可能会返回“D”的位置。您可以添加要搜索的字符串的长度 - Dr。 med。 - 到 $ PositionOfSearch

    不幸的是,我目前正在使用的计算机中没有生产软件,我无法为您测试一个正常工作的代码,但希望这会让您朝某个方向发展。

答案 7 :(得分:0)

这有点长,性能较差,但您可以轻松地将要删除的所有标题词添加到数组$titles_to_ignore

function remove_academic_titles($input) {
    $titles_to_ignore = ['Dr.', 'Prof.', 'med.', 'Priv.', 'Doz.'];

    foreach ($titles_to_ignore as $title) {
        $input = preg_replace("@". preg_quote($title) ."[-\s]*@", "", $input);
    }
    return $input;
}
$old = "Priv.-Doz. Dr. med. Susan. Andreas  Pailo";
$new = remove_titles($old);

答案 8 :(得分:-1)

$string = "Priv.-Doz. Dr. med. Susan. Andreas  Pailo"
$resularray = explode("Dr. med.",$string);

echo $ resularray [0];`