此代码的目的是查找独立字符并在每个字符后面放置一个点。例如。 “Jane Doe L D I”应该返回“Jane Doe L. D. I。”
我的代码在某些条件下有效。但是,当我使用以下方案时,它会失败。当我使用一串“Jeans Shirts K / N”并返回“Jeans Shirts K./N。”时失败了。
$string = "Jeans Shirts K-92";
echo preg_replace('/\b[A-z]{1}\b/', '$0.', $string);
Result: (Fail)
Jeans Shirts K.-92
Expected Result:
Jeans Shirts K-92
答案 0 :(得分:1)
您应该使用:
echo preg_replace('/(?<=\s|^)[A-Za-z](?=\s|$)/', '$0.', $string);
//=> Jeans Shirts K-92
[A-z]
不正确,因为它匹配ASCII A
(65)和z
(122)之间的更多字符。