我需要使用php在句点和下一个单词/字母之间添加空格。
例如,“这是一个句子。这是下一个。”需要成为“这是一个句子。这是下一个。”注意第一段时间后增加的空间。
我的问题是,即使我能够制作一个找到每个点后跟一个字母的正则表达式,我该如何用“点+空格”替换该点并保留该字母?
此外,还需要保留字母的大小写,低位或高位。
感谢您的意见。
答案 0 :(得分:9)
$regex = '#\.(\w)#';
$string = preg_replace($regex, '. \1', $string);
如果您想捕获的不仅仅是句号,您可以这样做:
preg_replace('#(\.|,|\?|!)(\w)#', '\1 \2', $string);
只需将要替换的字符添加到first()块中即可。不要忘记转义特殊字符(http://us.php.net/manual/en/regexp.reference.meta.php)
答案 1 :(得分:1)
$str = "Will you please slow down?You're gonna kill someone.Seriously!";
echo preg_replace('/(!|\?|\.)([^\s\.\?!])/', '\1 \2', $str);
答案 2 :(得分:0)
$str = "This is a sentence.This is the next one."; echo preg_replace("#\.(\S)#", '. \1', $str);