Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中如何用(·;)interpunt替换(.)点?_Php_Typography_Punctuation - Fatal编程技术网

在PHP中如何用(·;)interpunt替换(.)点?

在PHP中如何用(·;)interpunt替换(.)点?,php,typography,punctuation,Php,Typography,Punctuation,法语有一条排版规则,通过在字母之间添加(·)连音,以无性别的方式正确书写一些单词。 然而,我网站上的一些作者却输入了一个简单的(.)点 作为一个解决方案,我想创建一个函数来替换PHP字符串中由interpuncts放置在两个小写字母之间的每个点。但我的PHP技能相当有限……以下是我想要的: 替换此: $string=“T.N.T.:利弗鲁尔私人秘书长职位” 通过此: $string=“T.N.T.:Chargée des livreur·se·s.” 有人能帮我吗? 谢谢。如果您知道要替换的点的

法语有一条排版规则,通过在字母之间添加(·)连音,以无性别的方式正确书写一些单词。 然而,我网站上的一些作者却输入了一个简单的(.)点

作为一个解决方案,我想创建一个函数来替换PHP字符串中由interpuncts放置在两个小写字母之间的每个点。但我的PHP技能相当有限……以下是我想要的:

替换此

$string=“T.N.T.:利弗鲁尔私人秘书长职位”

通过此

$string=“T.N.T.:Chargée des livreur·se·s.”

有人能帮我吗?
谢谢。

如果您知道要替换的点的语法规则,可以使用
str_replace()
。(例如,如果与
é
e
之间的所有内容有关,则可以执行以下操作:

$bodytag = str_replace("é.e", "é·e", $sourceText);
但是你总是会冒一些副作用的风险。例如,如果有一个首字母缩略词,你不想被这种模式取代。我认为没有任何神奇的方法可以避免这种情况

更具体地说

我想创建一个函数来替换PHP字符串中由interpuncts放置在两个小写字母之间的每个点

这可以通过
preg_replace()
和适当的正则表达式来实现


请参见如果您知道围绕要替换的点的语法规则,则可以使用
str_replace()
(例如,如果与
ee
e
之间的所有内容有关,则可以执行以下操作:

$bodytag = str_replace("é.e", "é·e", $sourceText);
但是你总是会冒一些副作用的风险。例如,如果有一个首字母缩略词,你不想被这种模式取代。我认为没有任何神奇的方法可以避免这种情况

更具体地说

我想创建一个函数来替换PHP字符串中由interpuncts放置在两个小写字母之间的每个点

这可以通过
preg_replace()
和适当的正则表达式来实现


请参见使用
preg_replace
with模式动态匹配3个组-两个小写字母(包括特殊的法语字母)和点之间,并使用替换中的第一个和第三个捕获组,以及INTERINCT:

$string = "T.N.T.: Chargé.e des livreur.se.s.";
$pattern = '/([a-zàâçéèêëîïôûùüÿñæœ])(\.)([a-zàâçéèêëîïôûùüÿñæœ])/';
$replacement = '$1·$3'; //captured first and third group, and interpunct in the middle 

//results in "T.N.T.: Chargé·e des livreur·se·s."
$string_replaced = preg_replace($pattern, $replacement, $string); 
有关
preg\u replace
的更多信息:


使用
preg_replace
with模式动态匹配3个组-两个小写字母(包括特殊的法语字母)和点之间,并使用替换中的第一个和第三个捕获组以及INTERINCT:

$string = "T.N.T.: Chargé.e des livreur.se.s.";
$pattern = '/([a-zàâçéèêëîïôûùüÿñæœ])(\.)([a-zàâçéèêëîïôûùüÿñæœ])/';
$replacement = '$1·$3'; //captured first and third group, and interpunct in the middle 

//results in "T.N.T.: Chargé·e des livreur·se·s."
$string_replaced = preg_replace($pattern, $replacement, $string); 
有关
preg\u replace
的更多信息: