如何使用preg替换匹配字符串中的字符并在每个字母后添加一个点


How can I match characters in a string and palce a dot after each Letter using preg replace

我的代码有效。但是我希望它返回下面的结果。

约翰·多伊 L. R. T.

相反,它返回(它仅在找到 2 个或更多点时才这样做。约翰·多伊·

$string = "John Doe l. r t";
$string = preg_replace_callback('/'b's[A-z]{1}'b/', function ($matches) {
  return strtoupper($matches[0]);
}, $string);
echo preg_replace('/'b's[A-z]{1}'b/', '$0.', $string);

我在你的代码中做了一些修改。

试试这个代码:-

$string = "John Doe l. r t";
$string = preg_replace_callback('/'b's[A-z]{1}'b/', function ($matches) {
 return strtoupper($matches[0]);
}, str_replace('.', '', $string));
echo preg_replace('/'b's[A-z]{1}'b/', '$0.', $string);

尝试匹配用空格括起来的字母,或者在文本的开头和结尾用空格括起来:

echo preg_replace("/'s([a-zA-Z])'s|$/", "$1.", $input_lines);