删除字符串并获取右侧剩余的任何内容

remove a string and get whatever left on the right side

我的字符串像

Priv.-Doz。医学博士。苏珊。安德烈亚斯·派洛

博士。医学。 Sumat 达格德伦

教授。医学博士。桑德里安·阿克塞格勒

如何删除 "Dr. med." 并获取字符串的右侧,以防在删除 Dr. med.

后我会得到 'Susan. Andreas  Pailo'

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

请建议, 谢谢

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

尝试使用 str_replace

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

它应该work.Search你想要的字分开。

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

尝试以下操作:

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

要在某些字符串使用 explode() 后得到正确的字符串

$data="Priv.-Doz. Dr. med. Susan. Andreas  Pailo";
$search="Dr. med.";
$result = explode($search, $data);
echo  end($result);//Susan. Andreas  Pailo

使用 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"

我可以假设您要求提取字符串的一部分 after Dr. med.,并且不一定需要保留字符串的其余部分 - 包括前面的内容?

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

  1. 找到 Dr. 的位置。 med. 使用 strpos.
  2. 使用 substr 从 $start 参数的第 1 步中找到的位置提取子字符串。

例如:

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

尽管您可能需要调整 $PositionOfSearch 值,因为 PHP 可能 return 改为 'D' 的位置。您可以添加要搜索的字符串的长度 - Dr. med. - 至 $PositionOfSearch.

很遗憾,我目前使用的计算机中没有生产软件,我无法为您测试工作代码,但希望这能让您朝某个方向前进。

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

echo $resularray[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);