PHP/Regex 用适当的引号替换英寸字符

PHP/Regex replace inch character with proper quotation marks

我想用正确的德语引号 „example“.

替换英制字符 "

示例字符串为:

$string = `Mein Name ist "Joseph"`

我试过了

str_replace("\"", '„', $string) 

但当然它会将所有的英制字符替换为相同的引号

Mein Name ist „Joseph„ 

所以我想我需要一个正则表达式来以某种方式替换 before 一个单词 after[=35] 的英寸字符=]与相同的词得到结果

Mein Name ist „Joseph“

尽管阅读了正则表达式的工作原理,但我真的不知道如何实现它。

欢迎任何提示,谢谢!

尝试这样的事情,

$re = '/("([^"]*)")/';
$str = 'Mein Name ist "Joseph"';
$subst = '„“';

$result = preg_replace($re, $subst, $str);

echo $result;

退房,preg_replace function

取得this on regex.com

给你。我用正则表达式替换了第一个 ",然后用第二个字符替换了其他所有内容。

$string = 'Mein Name ist "Joseph"';
$patterns = array();
$patterns[0] = '/ "/';
$patterns[1] = '/^"/';
$replacements = array();
$replacements[1] = ' „';
$replacements[0] = '^„';
$str = preg_replace($patterns, $replacements, $string);
$str = str_replace("\"", '“', $str);
echo $str;