使用preg_replace函数删除字符
我使用preg_replace函数。我希望函数不要删除撇号(')字符。所以我希望它能把这个词作为(点)。 我该怎么做?使用preg_replace函数删除字符
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9 ]/','',$last_word);
echo $new_word;
尝试:
$last_word = "o'clock.";
$new_word= preg_replace('/[^a-zA-Z0-9\' ]/','',$last_word);
echo $new_word;
演示在这里:http://ideone.com/JMH8F
您使用的正则表达式不会删除“'”(撇号)。相反,它与主题字符串根本不匹配,因为“。” (点)。在这种情况下,preg_replace()返回NULL。
它返回'oclock'。 http://ideone.com/FoRE7 – 2012-07-26 12:05:12
对不起,你是对的。我会给另一个答案:-( – arkascha 2012-07-26 12:07:19
是否有去(返回)? – user1425871 2012-07-26 12:08:15
该正则表达式明确删除所有字符除了的字母和数字。请注意领先的“^”。所以它会做你所要求的。
所以很有可能你要添加的“'”(撇号),以正则表达式中设置排除:
'/[^a-zA-Z0-9\' ]/'
更改原始'/[^a-zA-Z0-9 ]/'
到"/[^a-zA-Z0-9 ']/"
。这仅仅包括了否定字符类中的撇号。
另外:我的建议是对字符串使用双引号(与"o'clock."
一样),因为混合PHP字符串和正则表达式模式的反斜杠转义可能会很快引起混淆。
然后包括在您忽略的人物名单逃脱撇号。 – dnagirl 2012-07-26 12:07:25
那么最终的结果应该是什么?你在寻找什么规则(英文)?是,“删除任何不是字母,数字,空格或撇号的字符”? – 2012-07-26 12:08:11