如何使用preg替换在每个字符后面放置一个点

时间:2016-01-19 15:00:48

标签: php regex preg-replace preg-match str-replace

此代码的目的是查找独立字符并在每个字符后面放置一个点。例如。 “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

1 个答案:

答案 0 :(得分:1)

您应该使用:

echo preg_replace('/(?<=\s|^)[A-Za-z](?=\s|$)/', '$0.', $string);
//=> Jeans Shirts K-92

[A-z]不正确,因为它匹配ASCII A(65)​​和z(122)之间的更多字符。