使用preg_replace函数删除字符

时间:2012-07-26 11:59:39

标签: php preg-replace

我使用preg_replace函数。我希望函数不要删除撇号(')字符。所以我想把它作为(点)返回。 我怎样才能做到这一点?

$last_word = "o'clock.";

$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);

echo $new_word; 

5 个答案:

答案 0 :(得分:0)

尝试:

$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9\' ]/','',$last_word);
echo $new_word;

在这里演示:http://ideone.com/JMH8F

答案 1 :(得分:0)

该正则表达式明确删除字母和数字之外的所有字符。注意前导“^”。所以它会按照你的要求去做。

所以很可能你想在正则表达式中的排除集中添加“'”(撇号):

'/[^a-zA-Z0-9\' ]/'

答案 2 :(得分:0)

将原始'/[^a-zA-Z0-9 ]/'更改为"/[^a-zA-Z0-9 ']/"。这只包括否定字符类中的撇号。

查看online example

除此之外:我的建议是对字符串使用双引号(与"o'clock."一样),因为将反斜杠转义与PHP字符串和正则表达式混合会很快混淆。

答案 3 :(得分:0)

试试这个。这可能会有所帮助......

$new_word= preg_replace('/\'/', '', $last_word);

演示:http://so.viperpad.com/F82z9o

答案 4 :(得分:-1)

您使用的正则表达式不会删除“'”(撇号)。相反,它根本不匹配主题字符串,因为“。” (点)。在这种情况下,preg_replace()返回NULL。