如何使用 preg replace 在每个字符后放置一个点
How can I place a dot after each character using preg replace
这段代码的目的是寻找独立的字符并在每个字符后放置一个点。例如。 "Jane Doe L D I" 应该 return "Jane Doe L. D. I."
我的代码在特定条件下工作。但是,当我使用以下场景时,它失败了。当我使用 "Jeans Shirts K/N" 和 returns "Jeans Shirts K./N."
的字符串时失败
$string = "Jeans Shirts K-92";
echo preg_replace('/\b[A-z]{1}\b/', '[=10=].', $string);
Result: (Fail)
Jeans Shirts K.-92
Expected Result:
Jeans Shirts K-92
你应该使用:
echo preg_replace('/(?<=\s|^)[A-Za-z](?=\s|$)/', '[=10=].', $string);
//=> Jeans Shirts K-92
[A-z]
不正确,因为它匹配 ASCII A
(65) 和 z
(122) 之间的更多字符。
这段代码的目的是寻找独立的字符并在每个字符后放置一个点。例如。 "Jane Doe L D I" 应该 return "Jane Doe L. D. I."
我的代码在特定条件下工作。但是,当我使用以下场景时,它失败了。当我使用 "Jeans Shirts K/N" 和 returns "Jeans Shirts K./N."
的字符串时失败$string = "Jeans Shirts K-92";
echo preg_replace('/\b[A-z]{1}\b/', '[=10=].', $string);
Result: (Fail)
Jeans Shirts K.-92
Expected Result:
Jeans Shirts K-92
你应该使用:
echo preg_replace('/(?<=\s|^)[A-Za-z](?=\s|$)/', '[=10=].', $string);
//=> Jeans Shirts K-92
[A-z]
不正确,因为它匹配 ASCII A
(65) 和 z
(122) 之间的更多字符。