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;
给你。我用正则表达式替换了第一个 ",然后用第二个字符替换了其他所有内容。
$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;
我想用正确的德语引号 „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;
给你。我用正则表达式替换了第一个 ",然后用第二个字符替换了其他所有内容。
$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;