php替换正则表达式

时间:2010-05-19 14:30:08

标签: php regex replace

我需要使用php在句点和下一个单词/字母之间添加空格。

例如,“这是一个句子。这是下一个。”需要成为“这是一个句子。这是下一个。”注意第一段时间后增加的空间。

我的问题是,即使我能够制作一个找到每个点后跟一个字母的正则表达式,我该如何用“点+空格”替换该点并保留该字母?

此外,还需要保留字母的大小写,低位或高位。

感谢您的意见。

3 个答案:

答案 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);