Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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字符串中的任何单个字符并在其末尾添加句点?_Php_Regex_String - Fatal编程技术网

如何查找PHP字符串中的任何单个字符并在其末尾添加句点?

如何查找PHP字符串中的任何单个字符并在其末尾添加句点?,php,regex,string,Php,Regex,String,这是一个我正在尝试做的例子 我有一个例子,我得到一个查询字符串j-doe,我的函数将其更改为j-doe 然后我如何遍历该字符串,检测一个孤独的字母(名字的首字母)并添加一个句点,使其像J.Doe那样输出 这需要在字符串中的任何位置检测一个孤独的字母,例如将Henry J.Doe更改为Henry J.Doe 提前非常感谢 编辑:字符串是数据库中的名称,因此不必担心单字母单词。试试这个 $str = 'Henry J Doe'; $newWords = array(); $words = explo

这是一个我正在尝试做的例子

我有一个例子,我得到一个查询字符串
j-doe
,我的函数将其更改为
j-doe

然后我如何遍历该字符串,检测一个孤独的字母(名字的首字母)并添加一个句点,使其像
J.Doe
那样输出

这需要在字符串中的任何位置检测一个孤独的字母,例如将
Henry J.Doe
更改为
Henry J.Doe

提前非常感谢

编辑:字符串是数据库中的名称,因此不必担心单字母单词。

试试这个

$str = 'Henry J Doe';
$newWords = array();
$words = explode(' ', $str);

foreach ($words as $word) {
    if (strlen($word) == 1) {
        $word .= '.';
    }

    $newWords[] = $word;
}

$str = implode(' ', $newWords);
echo $str;

使用preg_替换,如下所示:

$str = 'Henry J Doe';
$repl = preg_replace('/([A-Z])(?=\s|$)/', '\1.', $str);

现场演示:到目前为止你试过什么吗?那“J Doe的小说”呢<代码>一本J.Doe的小说?或
I.查看死人
?尝试使用子字符串函数,并检查每个字符在当前字符前后是否有空格。如果是,请添加一个编辑:注意第一个和最后一个字符小心。有一个合法的例子,人们可能有一个单一的字符名称。哇。。。你对regex有意见吗?:)就这样!非常感谢。我不知道从哪里开始,是使用regex还是strlen。