PHP/Regex 用正确的引号替换英寸字符

我想"用正确的德语引号替换英寸字符„example“

一个示例字符串是:

$string = `Mein Name ist "Joseph"`

我试过

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

但当然它会用相同的引号替换所有英寸字符

Mein Name ist „Joseph„

所以我想我需要一个正则表达式来以某种方式替换单词之前的英寸字符和同一单词之后的英寸字符以获得结果

Mein Name ist „Joseph“

尽管阅读了正则表达式的工作原理,但我无法真正弄清楚如何实现这一目标。

任何提示都将受到欢迎,谢谢!


手掌心
浏览 95回答 2
2回答

开心每一天1111

尝试这样的事情,$re = '/("([^"]*)")/';$str = 'Mein Name ist "Joseph"';$subst = '„$2“';$result = preg_replace($re, $subst, $str);echo $result;

繁花不似锦

干得好。我使用正则表达式替换第一个“,然后用第二个字符替换其他所有内容。$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;
打开App,查看更多内容
随时随地看视频慕课网APP